wiki:code_review

Version 2 (modified by dingjianyong, 12 years ago) (diff)

--

代码审查方案

代码审查的目的

  • 检查代码规范,保证团队编码风格的一致性
  • 保证代码逻辑符合需求,减少测试bug的数量
  • 提高代码的质量,增强代码的可维护性,促使团队成员编码能力共同进步

代码审查的参与对象

  • 代码的编写人员,以下简称作者
  • 代码审查的执行人员,以下简称审查者,可以为一个或多个

代码审查的前提条件

  • 代码可以顺利运行
  • 作者已经做过单元测试
  • 审查者对需求有基本的了解

代码审查的审查点

  1. 代码规范,符合团队统一的代码规范
  2. 单元测试,保证代码已经编写对应的单元测试
  3. 代码逻辑,审查代码符合需求
  4. 代码安全,检验是否存在xss漏洞和sql注入漏洞,权限漏洞等安全性问题
  5. 代码设计,包括对数据库设计,对象设计,方法设计,性能消耗等方面进行评审,提出优化和重构的建议

代码审查的要求

  • 审查者必须对第1,2点进行审查
  • 审查者可以根据个人时间及需求和代码的复杂程度决定是否审查第3,4点
  • 第5点不作强制要求,建议有时间的审查者及有经验的同事对第5点进行审查

代码审查的工具和流程

  • 使用ReivewBoard进行代码审查,安装及初次使用请参考: ReivewBoard插件安装文档
  • 完成需求后,作者需要先提交代码审查,再提交代码到svn
  • 由作者视具体情况决定本次提交审核的审核员,建议至少为2人
  • 审查者可以根据自己的时间安排,登陆 ReviewBoard面板进行代码审查
  • 审查者进行代码审查后,可以对代码进行提问或提出review的意见,作者需要就问题进行回答或修复对应的问题
  • 作者修改问题后,需要重新提交审核
  • 审核人员认为代码通过,则可点击ship it。否则继续与作者进行review的交互沟通。
  • 所有审核人员都对代码通过审核后,作者可以把本次审查纪录关闭,这样则完成了代码审查的一个生命周期

代码审查实施中的问题与总结

  • ReivewBoard工具暂时只支持eclipse,建议习惯使用其他IDE的同事可以继续用原有工具进行开发,单独用eclipse进行代码审查的提交
  • 审查者的审查时间固定在每天早会以后,每个需求大概在15分钟以内,既保证自身时间,也不会耽搁提交者的时间。
  • 目前ReivewBoard工具对代码规范的检查还不能完全支持,例如空格和换行,利用工具无法检查到。

定期回顾与总结


各人总结出代码审查过程中发现或思考的问题,提交对应的问题和代码,进行交流和讨论。以促成以下2点:

  1. 达成代码规范和代码设计编写的共识,避免日后犯同样错误。
  2. 在交流中发现项目代码已有问题,项目负责人自行安排时间修改,以更好地改善各项目代码质量。