代码审查方案
代码审查的目的
- 检查代码规范,保证团队编码风格的一致性
- 保证代码逻辑符合需求,减少测试bug的数量
- 提高代码的质量,增强代码的可维护性,促使团队成员编码能力共同进步
代码审查的参与对象
- 代码的编写人员,以下简称作者
- 代码审查的执行人员,以下简称审查者,可以为一个或多个
代码审查的前提条件
- 代码可以顺利运行
- 作者已经做过单元测试
- 审查者对需求有基本的了解
代码审查的审查点
- 代码规范,符合团队统一的代码规范
- 单元测试,保证代码已经编写对应的单元测试
- 代码逻辑,审查代码符合需求
- 代码安全,检验是否存在xss漏洞和sql注入漏洞,权限漏洞等安全性问题
- 代码设计,包括对数据库设计,对象设计,方法设计,性能消耗等方面进行评审,提出优化和重构的建议
代码审查的要求
- 审查者必须对第1,2点进行审查
- 审查者可以根据个人时间及需求和代码的复杂程度决定是否审查第3,4点
- 第5点不作强制要求,建议有时间的审查者及有经验的同事对第5点进行审查
代码审查的工具和流程
- 使用ReivewBoard进行代码审查,安装及初次使用请参考: ReivewBoard插件安装文档
- 完成需求后,作者需要先提交代码审查,再提交代码到svn
- 由作者视具体情况决定本次提交审核的审核员,建议至少为2人
- 审查者可以根据自己的时间安排,登陆 ReviewBoard面板进行代码审查
- 审查者进行代码审查后,可以对代码进行提问或提出review的意见,作者需要就问题进行回答或修复对应的问题
- 作者修改问题后,需要重新提交审核
- 审核人员认为代码通过,则可点击ship it。否则继续与作者进行review的交互沟通。
- 所有审核人员都对代码通过审核后,作者可以把本次审查纪录关闭,这样则完成了代码审查的一个生命周期
代码审查实施中的问题与总结
- ReivewBoard工具暂时只支持eclipse,建议习惯使用其他IDE的同事可以继续用原有工具进行开发,单独用eclipse进行代码审查的提交
- 审查者的审查时间固定在每天早会以后,每个需求大概在15分钟以内,既保证自身时间,也不会耽搁提交者的时间。
- 目前ReivewBoard工具对代码规范的检查还不能完全支持,例如空格和换行,利用工具无法检查到。
定期回顾与总结
各人总结出代码审查过程中发现或思考的问题,提交对应的问题和代码,进行交流和讨论。以促成以下2点:
- 达成代码规范和代码设计编写的共识,避免日后犯同样错误。
- 在交流中发现项目代码已有问题,项目负责人自行安排时间修改,以更好地改善各项目代码质量。
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)