1:是否需要代码规范?
代码规范是为了统一代码的风格和形式,方便所有人理解,这实际上降低了维护和更新软件的时间好成本。
首先很多人说这些规范都是官僚制度下产生的浪费大家的编程时间,并且坚称拥有着属于自己的代码规范,不愿意做出改变。我想这是由于他们将代码风格与代码规范混为一体了。代码规范同时包括了编码风格和其它规范,不仅仅指代码格式。例如,像“返回成功/失败的函数应该用一个整数作为返回值”,这样的规则不属于编码风格。
编程的艺术并不是通过一些小的规范和形式表现出来的。服从一种代码规范并不会限制一个程序员的创造力。
根据某些项目的特别需要,可以有一些针对这些项目优化过的代码规范,但大部分项目应该仍然通用一种代码规范,因为通用的代码规范仍然对集体有很大帮助,这种对集体的好处甚至胜过个别项目通过特殊化而实现的优化。
作为程序员,我们开发出的软件并不是属于个人的,这个软件日后的维护工作很可能是由另一个程序员做的。然而不遵守代码规范的后果就会是做维护的程序员面对你的代码是一种完全陌生的感觉,这无疑大大加大了程序员的工作强度。而加入做这份工作的是你,面对一个完全不遵照规范的程序,一眼望去,不知其意,会不会觉得恼火呢?所以还是遵守共同的代码规范吧。
2:结对项目的代码复查
根据博客上提供的链接关于代码审查的描述针对结对同伴的代码审查结果总结成表格如下:
代码是否能够正常工作?是否能够达到预期的功能 | 能 |
所有的代码都简单易懂吗? | 大部分还行,有少许例外 |
是否符合你们的代码规范?通常包括括号的位置,变量和函数的命名,每一行的长度,格式以及注释 | 代码规范未指定,因此符合度不是很好 |
是否存在一些冗余或者重复的代码? | 没有 |
是否做到了尽可能的模块化? | 是 |
循环的长度是否规整?循环是否有正确的终止条件? | 循环长度规整,终止条件也是正确的 |
所有的输入数据都被检查(检查格式是否正确,长度,类型以及范围等)并且编码过了吗? | 不是 |
哪些地方使用了第三方程序,返回的错误信息是否全部被捕获了? | 未使用第三方代码 |
输出值是否通过检验并正确编码了? | 是 |
是否有文档来解释代码? | 否 |
所有的函数是否有加上规格? | 否 |
代码是可测试的吗?即是否添加太多隐藏的依赖、是否能够初始化对象、测试框架可以使用方法等 | 可测试 |
测试是否存在?以及它是否做到了完全覆盖? | 未做测试 |
单元测试是否测试到了代码能否达到预期的功能? | 未做单元测试 |