一、是否需要有代码规范
1.这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。
这些规范并不是一开始就有的,也不是由某个人规定的,代码规范是程序员们在不断地编程实践过程中自发地形成的一种共识,这种共识的出发点是团队开发效率、代码可读性与可重用性。所以我们应该理解并提高对自己编码的要求,使自己的编码有良好的风格,符合团队对编码的规范。
作为团队中的一员,我们必须遵循团队的代码规范,这样你的代码可以被团队中其他队员很好地理解,代码可以被团队共享。而如果不遵循代码规范,会导致代码风格不统一,你的队友阅读你的代码时会产生无法理解或无法适应的痛苦。
统一的代码风格有利于代码的维护,你写出的代码可以被整个团队共享,这就是代码集体所有制。
所以,这些规范不是由官僚制度产生,客观上规范会大大加快团队的开发效率,节省不必要的纠纷时间。
2.我是个艺术家,手艺人,我有自己的规范和原则。
首先,在一个团队中,你是团队的一分子,而不是一个艺术家、手艺者。你可以在自己写代码的时候发挥你的个性与自由,但你不可以把你的个人习惯带到团队工程中,上一点已经讲过,这会降低整个团队的开发效率。
3.规范不能强求一律,应该允许很多例外。
规范就是规范,不可以允许例外。
假设你在某一点给自己开了例外,人人都在自己的某些点开了例外,规范还如何存在,队友阅读你的代码时读到了他不习惯、不理解的代码,可能导致某个bug没被发现。编程是一个细节决定成败的事情,同样,代码规范不应该有例外,细节处更应该留心。
4.我擅长制定编码规范,你们听我的就好了。
首先,团队不应该由一人说了算。
其次,代码规范人人有自己的看法,没有谁更擅长一说。最好的代码规范应该符合团队中大多数人的编码习惯。
所以,编码规范应该由大家一起制定,征得大家同意后再实行。
二、代码复审
我与鲁聃互相评审代码
Code Review CheckList | |
General | |
代码是否能够正常工作? | 能 |
所有的代码都简单易懂吗? | 尚可 |
是否符合你们的代码规范? | 由于事先并没有商讨代码规范,所以在这方面的体验不是很好。 |
是否存在一些冗余或者重复的代码? | 否 |
是否是否做到了尽可能的模块化? | 做到了 |
有没有一些被注释的代码? | 没有 |
循环的长度是否规整?循环是否有正确的终止条件? | 循环长度规整,有正确的终止条件 |
Security | |
所有的输入数据都被检查? | 否 |
第三方程序的使用? | 未使用第三方代码 |
输出值是否经过了检验? | 是 |
是否有对无效参数进行检验? | 无 |
Documentation | |
(由于没有事先进行约定,文档方面没有写) | |
Testing | |
可测试性? | 可以 |
是否已经做了测试? | 未做测试 |
单元测试的效果? | 没有做单元测试 |
数组是否有越界? | 否 |