个人作业Week 2 ----------代码的规范和代码复审
1.是否需要有代码规范
从个人理解的角度出发,我认为代码规范还可以细分为代码的风格还有代码的结构设计(就好比排版一类的)
以前在上C语言课程的时候就看到过,老师会在打“{”的时候进行一个换行,但是有些老师或者同学在展示自己的代码的时候“{”是不换行的,或许从基本上来理解,这就是我们所认为的代码的风格吧,而我对于这种代码风格的判定应当是从代码风格的原则来看,第一要简单明了,第二易读易懂,第三没有二义性。代码的结构设计也就是像是程序设计中的模块之中的关系吧。
(1)这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。
表示不赞同。其实最简单的一个原因就是我们的代码不可能只有我们一个人会去看,而当别人看到你的代码时,首先映入眼帘的就是代码风格和代码的结构设计,倘若这两者不够标准或者是说不够符合一个大众观赏的标准,就算你的代码再优质,那也不过是你个人的作品,在团队的开发中你可能是会导致队友合作不顺畅的一个结,而不是助长团队合作默契的那一种风格。而且我们现在写的代码不过最多将近1000行(这是我目前的经历来说,不代表全体水平TuT),倘若以后进入项目的工作中,写代码的量达到了几万行呢?甚至更多呢?如果没有一个良好的代码规范,恐怕浪费的时间是要比规范代码的时间更多的吧,而且规范过后的代码将会使一个队伍的人进行学习和移植完善。从基本的理解上来说,大大的提升了个人的代码美观性和可读性,也提升了团队的合作默契和合作更多的突破自身代码不足的机会。
(2)是个艺术家,手艺人,我有自己的规范和原则。
持中肯态度。首先我要解释为什么我会保持中肯态度,因为规范和样例都是人为拟定的,没有什么是一出来就是天注定的,所以我们在规定规范的时候就注定了我们会去选择一个比较大众化一点的代码规范,然而我认为这个东西并不是一成不变的,所以任何的代码规范和原则都是可接受并且可理解的,就跟别人要看我们的代码一样,我们有自己的风格,我们首行是怎么缩进的,括号什么时候换行等等,我认为都是可以通过我们的意见达成一致去改变的。然而我持中肯的另一个原因就是很多人把代码规范看起来是一种艺术,我不同意这是艺术,也不同意是什么手艺人,我觉得我在写代码的时候只顾着代码的正确性,符不符合程序要求,并没有把很多的注意放在了代码的规范创造上,所以作为一个艺术家手艺人是万万不可的,然而我认为自己的规范和原则是没有错而且不值得被束缚的。
(3)规范不能强求一律,应该允许很多例外。
不赞同。其实规范在一定情况下来说就是一个东西的标准,然而例外是一种打破标准的存在,所以这个会这个标准对于事物的约束大大的降低。其实每个人在团队中都是一个例外,因为我们都有自己的一个标准,然而真正的智者不就是求同而不是求异呀,所以往往规范是要进行统一的,那才是智者最后的结晶。
(4)我擅长制定编码规范,你们听我的就好了。
就像之前提到的,每个人在团队中都可以被称为一个例外,因为我们每个人都有自己的标准,如果让一个人自己来限制代码的规范和标准的话,那岂不是就变成了第三条一样的例子了嘛,然而还是那样,我们应当在团队的合作的过程中求同去异,这才会使我们的合作顺利并且默契,所以我认为让一个人去规定代码规范不重要,重要的是他要咨询大家意见,或者是大家一起出谋划策整理出合适的编码规范,要达到求同的目的。
2.代码复审
这次我结对作业的小伙伴就是我美若天仙帅过良辰的室友徐丞,由于他是一个不折不扣的给满分的大学霸,所以我也很荣幸我可以抱到一条大腿腿,感觉人生还是有希望有救的呢!!!
下面是我对他的项目的代码复审表:
|
General |
|||||||||||
|
Does the code work? Does it perform its intended function, the logic is correct etc. |
代码可以正常运行,并且有了题目所要求的功能。 |
||||||||||
|
Is all the code easily understood? |
代码结构非常好,变量的命名极其规范易懂,值得我去学习! |
||||||||||
|
Does it conform to your agreed coding conventions? These will usually cover location of braces, variable and function names, line length, indentations, formatting, and comments. |
看了他的代码。。感觉自己的代码规范真的是需要加强。。因为我的小伙伴真的是完成的非常棒。。我也非常喜欢他的代码规范。 |
||||||||||
|
Is there any redundant or duplicate code? |
在看过小伙伴给我写过的评语之后。。我也是顿然醒悟了自己的程序的问题。。我觉得我能够发现他的问题的地方应该是没有的,在我现有能力下,我觉得我还是应该多向他学习! |
||||||||||
|
Is the code as modular as possible? |
这次的作业中,小伙伴使用的是面向过程的一个思想。并且也是跟我一样只提交了一个cpp文件。 |
||||||||||
|
Can any global variables be replaced? |
有全局变量 |
||||||||||
|
Is there any commented out code? |
在代码中也有进行注释过的。((不过很规整 看起来很清晰~ |
||||||||||
|
Do loops have a set length and correct termination conditions? |
循环设置了长度,在规定范围内之后可正常结束循环。 |
||||||||||
|
Can any of the code be replaced with library functions? |
没有 |
||||||||||
|
Can any logging or debugging code be removed? |
无日志记录和调试代码 |
||||||||||
|
Security |
|||||||||||
|
Are all data inputs checked (for the correct type, length, format, and range) and encoded? |
检查了输入格式 |
||||||||||
|
Where third-party utilities are used, are returning errors being caught? |
未使用第三方程序 |
||||||||||
|
Are output values checked and encoded? |
输出结果的格式正确 |
||||||||||
|
Are invalid parameter values handled? |
不合法的输入视为错误输入 |
||||||||||
|
Documentation |
|||||||||||
|
Do comments exist and describe the intent of the code? |
没有写文档 |
||||||||||
|
Are all functions commented? |
没有写文档 |
||||||||||
|
Is any unusual behavior or edge-case handling described? |
没有写文档 |
||||||||||
|
Is the use and function of third-party libraries documented? |
没有写文档 |
||||||||||
|
Are data structures and units of measurement explained? |
没有写文档 |
||||||||||
|
Is there any incomplete code? If so, should it be removed or flagged with a suitable marker like ‘TODO’? |
没有写文档 |
||||||||||
|
Testing
|
|||||||||||
个人作业Week 2 ----------代码的规范和代码复审的更多相关文章
- c#/js代码命名规范及代码规范
常用命名 列表,lUser 数组,arrUser 字符串,strTitle 用,分割的字符串,strStatuss(多个用逗号分割的状态) C# Entity层 统一以E开始,比如EUser,EOrd ...
- 个人博客作业Week2(代码规范,代码复审)
Q:是否需要有代码规范 首先我们来搞清楚什么是“代码规范”,它和“代码风格”又有什么关系.依据个人的审美角度,我可能更喜欢在函数与函数之间空出一行,可能在命名习惯和代码注释上更加的internatio ...
- 代码规范、代码复审、PSP
作业三: 代码规范.代码复审.PSP 代码规范 代码规范的重要性 一.规范的代码可以促进团队合作 一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定会风格迥异.且不说会存 ...
- Beta阶段代码与规范
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta冲刺 这个作业的目标 团队进行Beta冲刺--代码规范与计划 作业正文 如下 其他参考文献 ... ...
- react第十八单元(redux中间件redux-thunk,redux工程目录的样板代码,规范目录结构)
第十八单元(redux中间件redux-thunk,redux工程目录的样板代码,规范目录结构) #课程目标 中间件:中间件增强redux的可扩展性,实现功能复用的目的. redux-thunk异步逻 ...
- php与数据库代码开发规范
php与数据库代码开发规范 1/25/2016 6:00:31 PM php对各类变量命名规范 目录名 文件命名 局部变量命名 使用英文动词名词,用下划线作为单词的分割,所有字母均使用小写 目录 up ...
- windows环境PhpStorm中简单使用PHP_CodeSniffer规范php代码
为什么使用PHP_CodeSniffer 一个开发团队统一的编码风格,有助于他人对代码的理解和维护,对于大项目来说尤其重要. PHP_CodeSniffer是PEAR中的一个用PHP5写的用来检查嗅探 ...
- java代码注释规范
java代码注释规范 代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率.也是程序代码可维护性的重要环节之一.所以我们不是为写注释而写注释.下面说一下我们在诉求网二 ...
- 也谈谈规范JS代码的几个注意点
也谈谈规范JS代码的几个注意点 写JS代码差不多也有两年了吧,从刚开始的“初生牛犊不怕虎”乱写一通到后来也慢慢知道去规范一下自己写的代码.这种感觉就像是代码是你的作品,你希望它保持一份不仅干净而且也优 ...
随机推荐
- Maven创建多个子项目
一.下载jdk并安装:下载apache-maven包,解压到指定目录.(例:D:\Java\apache-maven-3.3.9) 二.配置环境. 1.配置jdk环境 系统变量 (1)JAVA_HOM ...
- linux设备树笔记__dts基本概念及语法【转】
转自:http://www.360doc.com/content/15/1113/11/15700426_512794532.shtml 设备树手册(Device Tree Usage)原文地址:ht ...
- MySQL存储引擎中的MyISAM和InnoDB区别详解
在使用MySQL的过程中对MyISAM和InnoDB这两个概念存在了些疑问,到底两者引擎有何分别一直是存在我心中的疑问.为了解开这个谜题,搜寻了网络,找到了如下信息: MyISAM是MySQL的默认数 ...
- GCD 多线程同步
@property (strong, nonatomic) dispatch_queue_t barrierQueue; _barrieQueue = dispatch_queue_create(&q ...
- 浏览器检测navigator 对象
1.浏览器及版本号不同的浏览器支持的功能.属性和方法各有不同.比如IE 和Firefox 显示的页面可能就会有所略微不同. alert('浏览器名称:' + navigator.appName); a ...
- android studio自动导包
http://blog.csdn.net/buaaroid/article/details/44979629 关于导包的设置以上博文解释的很清楚,在此主要强调下这一句: Add unambiguous ...
- [团队项目]第二个冲刺 看板和燃尽图 Sprint2 6.8/6.9/6.10/6.11/6.12/6.13/6.14
1.开始一个新的冲刺: 起止:2016.6.1~2016.6.14 按照以下过程进行 ProductBacklog:继续向下细化 Sprint 计划会议:确定此次冲刺要完成的目标 Sprint Bac ...
- C++的几种强制类型转换
有时我们希望显式地将对象强制类型转换成另外一种类型.例如,如果想在下面的代码中执行浮点数除法: int i, j; double slope = i / j; 就要使用某种方法将i和/或j显式地转换成 ...
- Java基础知识点
以下10点为JAVA 基础知识,后面将足以总结和完善以备面试 数据类型 (包装类,字符串,数组) 异常处理 Java IO和NIO 数据结构 (集合和容器 ) 多线程(并发) 网络通信(协议) 面向对 ...
- 静态方法和类成员方法(Python)
静态方法和成员方法分别在创建时分别被装入Staticmethod 类型和 Classmethod类型的对象中.静态方法的定义没有 self参数,且能够被类本身直接调用,类方法在定义时需要名为 cls的 ...