`

代码评审怎么做,做到什么程度合适?

阅读更多

来自:http://www.iteye.com/topic/339832

 

最近在考虑在公司建立代码评审的机制,发现不像想象的那么简单:
代码评审的好处是毋庸置疑的,但也要付出成本,
而且评审别人的代码是一个比较敏感的事,所以具体操作的时候也有许多要注意的问题。
下面是我整理的文档准备开会讨论:


什么是代码评审:
代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。
通过工具来进行code review不在本次讨论范围内。

评审的内容:
编码规范问题:命名不规范、magic number、 System.out……
代码结构问题:重复代码、巨大的方法和类、分层不当、紧耦合
工具、框架使用不当:Spring、Hibernate、AJAX
实现问题:错误验证、异常处理、事务划分、线程、性能、安全、实现过于复杂、代码可读性不佳、扩展性不好
测试问题:测试覆盖度不够、可测试性不好
代码评审不负责检查功能、逻辑是否正确,这些要靠单元测试和QA工作来解决

代码评审的好处:
提高代码质量

在项目的早期发现缺陷,将损失降至最低

评审的过程也是重新梳理思路的过程,双方都加深了对系统的理解

促进团队沟通、促进知识共享、共同提高

交叉评审——代码走查:团队成员互相检查代码
参与者可以是任意两个组员,或开发组长分别与每个组员结对进行
时机可以选择在下班前半小时,对当天改动的模块进行评审
代码作者讲解如何以及为何这样实现、评审者提出问题和建议
每次解决的问题要记录到SVN注释或JIRA
每次评审不要贪多,如下图所示:当一次评审超过400行代码时,能发现缺陷数显著降低——事倍功半

会审:以项目为单位,召开专门的代码评审会议
参与者:包括项目组全体成员,其它组的开发组长也应尽量参加
时机选择:开发进行到某一阶段时,对共性问题进行总结,对好的做法进行提炼和推广
会前准备工作:
组织者应通知各参与者本次评审的范围
参与者阅读源代码,列出发现的问题、亮点,汇总给组织者
准备工作要细致,需要给出问题详细描述以及相关代码在SVN上的URL地址等
评审代码的选择:
最近一次迭代开发的代码
系统关键模块
业务较复杂的模块
缺陷率较高的模块
会议议程:
如果是第一次会议,先由该项目开发组长做整体介绍
参加者依次发言,结合代码讲解发现的问题
每讲完一个问题,针对其展开讨论,每个问题控制在10分钟以内
如果问题不多,还可以安排该组成员对最近开发的代码进行地毯式的讲解和排查;或者针对某个方面对整个项目做评审,例如性能、安全性或测试

会后总结:
把会上提出的所有问题、亮点及最终结论详细的记录下来,供其他团队借鉴
未能讨论清楚的问题,会后解决

实行代码评审制度前的准备工作:
架构师提供开发规范、指南,为代码评审提供依据
建立起单元测试规范,否则无法达到测试覆盖度的要求、难以修正发现的问题
最好有样例代码库作参照,以提高代码评审的可操作性
提供评审案例:用评审前的代码与评审后优化的代码做对比
问题跟踪:对评审中发现的问题代码应加以跟踪,确保问题得以解决,防止复发
评审到什么程度:
进行全面的代码评审成本较高,也没有必要

对发现的问题要本着集体代码所有制的观点和就事论事的原则,因此建议把代码质量与团队绩效(而不是个人绩效)挂钩。

分享到:
评论

相关推荐

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

    ### 代码评审会流程和评审标准 #### 一、引言 在软件开发过程中,代码的质量直接影响产品的稳定性和用户体验。为了提升代码质量、加强团队之间的沟通与协作,并且确保项目能够顺利推进,代码评审(Code Review)...

    软件代码评审表

    该表格规定软件代码评审表格式,明确了各项评审内容,避免遗漏。

    代码评审规范代码评审规范

    代码评审规范代码评审规范代码评审规范代码评审规范代码评审规范代码评审规范

    代码评审插件.zip

    代码评审是软件开发过程中的一个重要环节,它有助于提高代码质量,确保代码的可读性、可维护性和遵循团队的编码规范。"代码评审插件.zip" 提供了一种在Mac OS平台上进行高效代码评审的解决方案,同时包含了"file pdf...

    代码评审检查表

    代码评审检查表

    代码评审工具gerrit

    代码评审工具安装包

    代码评审检查表.xls

    Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码、测试过程和注释进行检查。...代码评审检查文档,统一规范文档、适合规范制定,以及做代码参考文档 便于学习。

    程序代码评审记录表

    程序代码评审记录表 程序代码评审记录表是软件开发中的一种重要文档,用于记录代码评审的过程和结果。下面是该表的详细解释和相关知识点: 代码评审记录表的组成部分 代码评审记录表由多个部分组成,包括项目信息...

    代码评审一般检查表.xls

    代码评审一般检查表:包含常用代码评审内容

    C++代码评审检查表.xls

    C++代码评审检查表:包含常用C++代码审查内容,以excel表格形式列出,详细清晰

    java代码评审检查表.xls

    java代码评审检查表:包含java常用代码审查内容

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

    #### 四、我们怎么做代码评审? ##### 3.1 作为代码提交者 1. **自检**:提交前自行检查代码,确保其符合质量标准。 2. **文档说明**:附上必要的注释和文档,以便评审者理解变更内容。 3. **分段提交**:对于较大...

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

    代码评审不仅仅是指出错误,也需要认可开发者所做的正确事情。 4. **遵循编码标准:** 代码评审应当基于一套明确的编码标准。这些标准有助于保持代码的一致性和质量。 5. **聚焦于代码本身:** 在评审过程中,应该...

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

    ### 11个高效的同行代码评审最佳实践 #### 背景介绍 本文基于IBM Rational Team Concert与SmartBear Code Collaborator结合使用的案例研究,提出了11项轻量级高效的同行代码评审最佳实践。这些实践旨在确保代码评审...

    有效无痛苦的代码评审

    ### 有效无痛苦的代码评审 #### 一、引言 在软件开发过程中,代码评审是一种常见的质量控制手段。然而,这种做法往往伴随着负面情绪,让开发者感到压力和不满。实际上,通过恰当的方法和心态调整,代码评审可以...

    前端代码评审规范V1.0.docx

    本篇文章将详细介绍前端代码评审规范V1.0,包括评审标准、评审时间、评审范围、评审代码选择、人员组成、评审结果和评审记录等方面的内容。 1. 编写目的 代码评审的主要目的是通过阅读代码来检查源代码与编码标准...

    代码评审检查表(c++/java)

    代码评审是软件开发过程中的重要环节,它有助于提高代码质量,发现潜在的错误,以及保持代码风格的一致性。在C++和Java这两种广泛使用的编程语言中,代码评审的检查表通常会涵盖多个方面,包括但不限于语法规范、...

    论文研究-面向Git的代码评审系统的设计与实现 .pdf

    这促使了对新一代代码评审工具的需求,即不仅需要能够提供定制化的评审流程,还需要能够高效地推荐合适的评审人。 在这样的背景下,本文提出了一种面向Git的代码评审系统的设计与实现。该系统不仅提供了可定制性的...

Global site tag (gtag.js) - Google Analytics