`
lujar
  • 浏览: 514939 次
  • 性别: 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 Rational Team Concert与SmartBear Code Collaborator结合使用的案例研究,提出了11项轻量级高效的同行代码评审最佳实践。这些实践旨在确保代码评审...

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

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

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

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

    代码评审会流程和评审标准

    通过定期组织代码评审会议,可以帮助团队成员识别潜在的问题、改进编程实践、分享最佳实践,从而提高整体代码质量和团队合作水平。 #### 二、代码评审的重要性 1. **提高代码质量**:通过同行评审发现潜在的错误和...

    前端开发最佳实践:代码评审.zip

    史上最全web前端技术全套教程,包括: 前端API集成 前端基础知识 前端开发最佳实践 前端性能优化 前端构建工具 前端框架和库 前端测试工具 前端状态管理 等流行技术的系列教程

    华为软件技术评审最佳实践 zz.ppt

    ### 华为软件技术评审最佳实践 #### 一、课程目的 本课程旨在帮助学员: - **理解业界软件技术评审方法**:通过本课程的学习,学员将了解到当前业界普遍采用的技术评审方法及其背后的原理。 - **掌握华为软件技术...

    静态代码检测最佳实践.docx

    【静态代码检测最佳实践】 代码规范是提升软件质量和团队协作效率的重要手段,尤其在大型公司中,如谷歌、百度、腾讯、阿里、华为等,都已经建立了自己的代码规范。然而,仅仅依靠人工审查来保证代码规范的实施往往...

    有效无痛苦的代码评审.pdf

    2. **作为教学工具:** 代码评审还被视为一个教学机会,帮助开发人员了解何时以及如何应用最佳实践和技术来改进代码的质量、一致性和可维护性。通过不断的代码审查,开发人员可以学习到不同的编程方法,并将其应用于...

    修改软件的艺术:构建易维护代码的9条最佳实践

    本文将基于《修改软件的艺术:构建易维护代码的9条最佳实践》一书,深入探讨这9条关键原则,帮助提升软件的可维护性。 1. 清晰的命名:一个变量、函数或类的命名应当准确反映其功能或意图。好的命名可以减少理解...

    软件开发-代码评审规范说明书

    代码评审有助于确保代码遵循最佳实践和编码标准,进而提高代码的整体质量和可维护性。 ##### 1.3 统一规范和风格 通过代码评审可以确保项目中的代码风格一致,便于后续开发和维护。这也有助于新成员快速理解代码...

    有效无痛苦的代码评审

    2. **技能提升**:代码评审过程中,开发者有机会学习新的编程技巧和最佳实践,从而逐步提高个人的技术水平。这种持续的学习氛围有助于建立一支高素质的技术团队。 #### 三、改善代码评审的策略 要使代码评审既有效...

    Ruby-Barkeep友好的代码评审系统

    Ruby-Barkeep代码评审系统是一个强大而灵活的工具,它结合了Ruby的便利性和代码分析的最佳实践,以改善代码质量、促进团队协作。通过自定义规则、集成现有开发工作流程以及提供用户友好的界面,Barkeep致力于打造一...

    软件质量管理6大最佳实践

    - **评审机制**:包括技术评审、代码评审等多种形式,其中同行评审是一种特别有效的质量保证手段,能够帮助发现潜在的问题。 #### 四、引入工具,复用成功模式 质量管理工具和技术的应用能够显著提升软件质量。...

    软件需求最佳实践

    本文将深入探讨“软件需求最佳实践”,帮助读者理解如何有效地管理、沟通和实现这些需求。 1. 需求获取与分析: - 需求获取通常涉及与利益相关者进行访谈、研讨会或问卷调查,以了解他们的期望和痛点。 - 分析...

Global site tag (gtag.js) - Google Analytics