最近所带项目,因为人员素质良莠不齐,写出的代码质量不一,为了保证项目质量,不得不对代码一行行进行审查。同时,为了对代码审查有个更深的了解及借鉴其它同行实践成果,在网上搜集了不少项目知识,下面是对这些知识做出的整理。
第1章前提
在 Wikipedia 上,对代码审查的定义是:代码审查(英语:Code Review)是指对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。代码审查常以不同的形式进行,例如结对编程、非正式的看过整个代码,或是正式的软件检查。
1.1代码审查首先要求团队有良好的文化
团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。“A的代码有个bug被B发现,所以A能力不行,B能力更好”,这一类的陷阱很容易被扩散从而影响团队内部的协作,因此需要避免。另外,代码审查本身可以提高开发者的能力,让其从自身犯过的错误中学习,从他人的思路中学习。如果开发者对这个流程有抵触或者反感,这个目的就达不到。
1.2谨慎的使用审查中问题的发现率作为考评标准
在代码审查中如果发现问题,对于问题的发现者来说这是好事,应该予以鼓励。但对于被发现者,我们不主张使用这个方式予以惩罚。软件开发中bug在所 难免,过度苛求本身有悖常理。更糟的是,如果造成参与者怕承担责任,不愿意在审查中指出问题,代码审查就没有任何的价值和意义。
第2章代码质量的属性
- 可理解性:代码需要在各个层面上能够被容易地理解。理想情况下,软件应该非常简单,并没有非常明显的缺陷。
- 可测试性:代码需要被编写的非常容易被测试。
- 正确性:代码需要满足功能和非功能性的需求。代码的行为是否与预期一致,其逻辑是否是正确无误的?被审查的代码是否与其他代码拥有类似的结构和功能?
- 有效性:代码需要有效的使用系统资源(内存,CPU,网络连接,等)。