`
touchinsert
  • 浏览: 1289480 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

代码评审的最佳实践

阅读更多
没有人否认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 Reviewshttp://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.


另外参考文章:

分享到:
评论

相关推荐

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

    11_个高效的同行代码评审最佳实践(IBM_and_Cisco) 常怀感恩之心,以后我资源均不再需要资源分下载。

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

    11个高效的同行代码评审最佳实践。这11项针对轻量级高效同行代码评审最佳实践被证明是有效的,它们建立在一个通过结合使用IBMRationalTeamConcert与SmartBearCodeCollaborator对Cisco系统的开发进行案例研究的基础之...

    代码静态测试:高效同行代码评审最佳实践

    摘要:这11项针对轻量级高效同行代码评审最佳实践被证明是有效的,它们建立在一个通过结合使用IBM:registered:RationalTeamConcert:trade_mark:与SmartBearCodeCollaborator对Cisco系统的开发进行案例研究的基础之上...

    Google工程实践文档.pdf

    随着开发项目的增多,我们不断总结经验,把这些最佳实践以文档的形式整理出来。 这份文档是我们集体经验的结晶。除了我们之外,相信其他公司、组织或开源项目也能从中 受益,现在时机成熟了,我们决定将其公开...

    敏捷开发中高质量Java代码开发实践

    内容概述步骤一:统一编码规范、代码样式步骤二:静态代码分析步骤三:单元测试步骤四:持续集成步骤五:代码评审和重构结论参考资料概述 Java 项目开发过程中,由于开发人员的经验、代码风格各不相同,...

    DevSecOps在携程的最佳实践

    作为业务覆盖机票、酒店、度假、汽车票、火车票、支付等各个方面,为全球用户提供服务的在线旅游网站,携程每周都会有数以万计的应用发布次数,如何保证每一次发布代码的安全性成为了DevSecOps实践中最大的挑战。...

    SQL Server 2008数据库设计与实现

     2.7 最佳实践  2.8 总结 第3章 概念阶段数据建模  3.1 理解需求  3.2 文档化过程  3.3 需求收集  3.3.1 客户访谈  3.3.2 要回答的问题  3.3.3 现存的系统和原型  3.3.4 其他类型的文档  3.4 ...

    在你的代码中自动实现设计规范

    通过UML模型,我也会分发那些捕获最佳实践的设计规范。例如,在Struts应用中,我推荐避免在Action类中使用实例变量,因为Action类是单例的,而且多个线程同时访问一个Action类实例是很平常的。其

    216-职称评审管理系统源码.zip

    通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的...

Global site tag (gtag.js) - Google Analytics