代码评审的最佳实践

翻译 2007年10月08日 12:56:00
        有人否认code review(代码评审、复查) 对提高代码质量的作用,但是如何进行code review? 这里 确实存在一些方法和技巧。方法不当,会浪费大量时间、造成低效率;流程过紧,会大大降低生产力,流程过松,很难知道code review的效果,甚至有没有进行code review,都很难判断。

这里有11条代码复审的最佳实践:

  1. 一次检查少于200~400行代码
  2. 努力达到一个合适的检查速度:每小时少于300~500行代码
  3. 有足够的时间、以适当的速度、仔细地检查,但不宜超过60~90分钟
  4. 在复审前,代码作者应该对代码进行注释
  5. 建立量化的目标并获得相关的指标数据,从而不断改进流程
  6. 使用检查表(checklist)肯定能改进双方(作者和复审者)的结果
  7. 验证缺陷是否真正被修复
  8. 管理人员要营造良好的氛围(文化),使大家可以积极地对待缺陷的发现,发现足够多的缺陷,只关心问题是什么、怎样引起的,而不关心是谁写的代码
  9. 清楚度量工具("Big Brother")的作用——度量工具是双刃剑,要小心使用
  10. 自我约束:即使没有时间完成所有代码的检查,也应该尽可能去做,哪怕是一部分
  11. 轻量级的code review是高效率的、可行的,并能有效地发现缺陷
 

详细内容参见
[PDF] Best Practices for Peer Code Review  ( www.SmartBearSoftware.com)
Code Reviews http://dotnet.org.za/cjlotz/archive/2007/08/28/code-reviews.aspx

有一个评论,对大家也有帮助,如强调code review的目标、代码静态分析工具的使用等:

I think the first thing you need to figure out is what kind of errors are you expecting to find during inspections. It must exist a clear idea of the goal of the review and all participants should share this idea. If this is not defined you may have reviews wasting time in discussions about variable names, indentation, code comments, message descriptions, or any other topic.

In my company for example, we don't look for code conventions compliance, we use automated tools to ensure that. We run static analysis tool on our code before inspections, therefore we don't look for the type of errors that this tool can easily report. But we do look for compliance with the design: is the code implementing the defined design appropriately? Are all exception conditions handled following the design?

One useful thing that I did in the past to define our goal for code reviews is to read different code inspection checklists available online and identify the items that I considered useful for our reviews. Then, based on that list I agreed with the team the aspects that we should check in our code reviews. In that way we focused our effort and everyone was on the same page during the review.


另外参考文章:

 

idea 的代码分析

IntelliJ IDEA 代码分析
  • zhaoyw2008
  • zhaoyw2008
  • 2015年05月20日 20:25
  • 12975

服务端 API 接口设计最佳实践

在移动互联网开发领域,我们经常需要针对移动设备,提供数据访问接口。在移动时代以前,接口设计并没有面对这么大的挑战,因为那时期的应用开发,前后端的区分并没有那么明显,需要专门设计接口的场景并不是很多。 ...
  • xsl_bj
  • xsl_bj
  • 2015年09月07日 16:49
  • 2391

《软件需求最佳实践》与《掌握需求过程》对比

最近公司要考察需求技能,抱着总结经验,提升技能的心态,看了两本关于需求的书籍,一本是被公司奉为需求人员教科书的《软件需求最佳实践》徐峰著,一本是《掌握需求过程第三版》James Robertson著。...
  • happymatilian
  • happymatilian
  • 2016年10月27日 16:40
  • 1614

深入理解Java虚拟机:JVM高级特性与最佳实践

目 录 [ - ] 《深入理解Java虚拟机:JVM高级特性与最佳实践》前言《深入理解Java虚拟机:JVM高级特性与最佳实践》内容特色《深入理解Java虚拟机:JVM高级特性与最佳实践》目录第...
  • ityouknow
  • ityouknow
  • 2016年06月24日 10:18
  • 2827

11_个高效的同行代码评审最佳实践(IBM_and_Cisco

  • 2013年12月04日 15:07
  • 178KB
  • 下载

11 个高效的同行代码评审最佳实践(转载)

11 个高效的同行代码评审最佳实践使用 SmartBear CodeCollaborator 与 Rational Team Concert 进行轻量级代码评审Jason Cohen, CodeCol...
  • tiger119
  • tiger119
  • 2011年06月12日 14:38
  • 840

代码评审--流程、工具和最佳实践

为什么执行代码评审 1.      代码评审的最大好处是纯社会性的,当你知道你的每一行代码都有另外一个人看,自然而然会更加卖力的表现,拿出最好的状态编码,因为每个人都有虚荣心嘛; 2.      ...
  • lenxer
  • lenxer
  • 2013年03月25日 23:52
  • 3620

11 个高效的同行代码评审最佳实践

11 个高效的同行代码评审最佳实践 使用 SmartBear CodeCollaborator 与 Rational Team Concert 进行轻量级代码评审 Jason Cohe...
  • igorzhang
  • igorzhang
  • 2012年05月28日 11:40
  • 2531

同行代码评审过程中的实践经验

首先,让我们谨记为什么要做代码评审。对于任何专业的软件开发人员来说,最重要的目标之一是能够持续的提高他们的工作质量。即使你的团队里尽是优秀的程序员,你也不能将你自己与一个有能力的自由从业者区分开来,除...
  • lanxuezaipiao
  • lanxuezaipiao
  • 2014年10月22日 10:14
  • 1935

有效无痛苦的代码评审

  • 2009年05月25日 22:46
  • 241KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:代码评审的最佳实践
举报原因:
原因补充:

(最多只允许输入30个字)