刚才专注看了下zwchen的博客,读到Code Reivew这一篇,觉得自己也了说话的冲动。

我们Team实施Code Reivew近5年,到今天,我们的结论是: Code Review是我们项目成功的最有力的武器。下面我先谈下我理解并实施的Code Review.

1.Code review的层次。

最基础的,也是所有人都会想到到的,就是编码规范,类,方法命名什么的,还有代码格式...这些是程序员的基本功底,默认选项;多年前领导要我搞个编码规范,我说大家都熟知的规范就已经很好了啊;当然公司内部也需要这方面的规范,比如项目如何命名,包如何命名等这些。

更高一层次的,也是说的比较少的,是代码的质量。前面能保证代码写的好看,大家看了都还顺眼,但并不能保证代码的可工作性,合理性,健壮性,可维护性。我们需要可以解决问题的代码;我们需要最合理(最是相对的)的代码;我们不希望破坏现有的架构搞特殊处理,如果架构本身不适应,那就可控制的重构;我们不希望有个工作很好的功能被破坏。

2.Code Review的好处

第一,最少有两个人对同一段代码深刻理解,并且认同。如果不能做到敏捷要求的“结对编程”的味道,我们就打个折执行吧。这一点从公司正常运营上,也是有好处的。

第二,开发人员可以放心的把自己的创造性发挥出来,因为他知道他有个坚强的后盾,绝不会等到QA发现不可饶恕的错误,然后经理过来骂你一顿。

第三,开发人员都会尽全力写最好的代码;软件开发人员都是要"face"的,不想当时就被别人找到缺陷,尤其是你身边的同事。再也不会只顾今天,不管明天会怎样;对软件的可维护性更加尽心。

第四,极大的提高软件质量,以及可维护性。当然这要求Review人员的责任心,以及专业精神。如果是维护性项目,经验也是相当重要的。

3.Code Review的重要性

至此,其重要性以已经不言而喻了。个人认为某种程度上其重要性以及你改超过Unit Test.

4.Code Review不好实施的原因

Code Review如此重要,但是据我接触的人跟公司来看,真正认真执行的并不多。其原因无非:

  • 项目时间紧,时间跟人员都不充足;如果是这种情况,建议招点人,项目计划制定的更合理些。

  • 重视程度不够;开发人员都觉得自己很牛,代码不需要给别人Review。其实问题往往就是由于过分的自信造成的,需要公司高层多做宣导,并形成制度,强力执行。等过一段时间,大家都会体验到其中的好处的。

  • 执行起来比较麻烦。这是大问题。如果你让开发人员觉得做Code Review是件很容易的事,并且收益大于付出,大家就愿意做了。我们Team大致经历过三个阶段。

第一阶段,按制定的流程,开发人员把修改的代码用邮件发给Review者,并说明改了什么,对系统那些功能有影响。然后负责Review的人Copy到Eclipse,对比CVS, 看代码的改动是否合理。然后再邮件通知合格,或不合格,并说明原因(口头或书面)。

第二阶段,开发人员都觉得这样太繁琐,费事费力;于是我们开发了个Eclipse插件,帮助开发人员对自动生成代码改动细节的邮件,并把改动的代码自动放到指定的公用文件夹中。如此一来开发人员生成一个Code Review的请求,就是分分钟的事情了(右键,写点什么,完成)就好了。

第三阶段,开发人员现在很Happy了,但是Review的人觉得还是有点麻烦,要Copy,要写邮件。于是我们把插件又改进了下,Review的人也可以在Eclipse上一键把代码copy进来;然后提供了一个Web Console供头头看我们Code Review的情况。

为什么要Code Review的更多相关文章

  1. 我们是怎么做Code Review的

    前几天看了<Code Review 程序员的寄望与哀伤>,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享.探讨.我们为什么要推行Code ...

  2. Code Review 程序员的寄望与哀伤

    一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...

  3. Git和Code Review流程

    Code Review流程1.根据开发任务,建立git分支, 分支名称模式为feature/任务名,比如关于API相关的一项任务,建立分支feature/api.git checkout -b fea ...

  4. 如何搭建开源code review gerrit服务器

    搭建环境:Ubuntu 14.04 一.环境准备 1.Java环境 gerrit依赖,用于安装gerrit环境. 下载:jdk-7u79-linux-x64.tar.gz http://www.ora ...

  5. Code Review Tools

    Code Review中文应该译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法.由此,我们可以审查代码的风格.逻 ...

  6. code review作业

    下面是对结对编程队友12061166 宋天舒的code review 五个优点: 1.代码的风格优秀,注释不多,但是必要的注释还是有的,比如: // 三种模式 // mode1仅统计单个单词 // m ...

  7. 15个最佳的代码评审(Code Review)工具

    代码评审可以被看作是计算机源代码的测试,它的目的是查找和修复引入到开发阶段的应用程序的错误,提高软件的整体素质和开发者的技能.代码审查程序以各种形式,如结对编程,代码抽查等.在这个列表中,我们编制了1 ...

  8. Code Review 五问五答

    Code Review 是什么? Code Review即代码审查,程序猿相互审核对方的代码. Code Review能获得什么好处? 提高代码可维护性 你写的代码不再只有编译器看了,你得写出审核人能 ...

  9. 大家是怎么做Code Review的?

    先说说我们公司现在的做法,一个团队被人为地分为两个阵营:Senior Developers和Junior Developers,比例差不多是1:1,Senior Developers就担负着对Juni ...

  10. Code Review for SSIS package

    以下是我对SSIS包进行code review的一些建议,如果有其他更好的方案欢迎拍砖. A. 查看是否使用了最优的解决方案 1. 最优的结构视图 2. 解决方案,包,任务,组建,参数的命名使用了易读 ...

随机推荐

  1. charles for https

    To remotely capture http or https traffic with charles you will need to do the following: HOST - Mac ...

  2. jQuery 取值、赋值的基本方法整理

    /*获得TEXT.AREATEXT的值*/ var textval = $("#text_id").attr("value"); //或者 var textva ...

  3. 数据库访问技术 odbc dao rdo uda jet oledb

    一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...

  4. 入门servlet:request请求转发和共享数据

    request 请求转发:一种在服务器内部的资源跳转方式 步骤: 1.通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(Strin ...

  5. 批量操作文本文件进行dos/unix格式转换

    批量将目录下所有文件进行 dos/unix 格式转换 使用 sed + grep #sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录` eg:  ...

  6. Thinkphp 数据库配置参数

    mysql配置 'DB_USER' => array( 'DB_TYPE' => 'mysql', 'DB_HOST' => '127.0.0.1', 'DB_NAME' => ...

  7. 20190817-T1-LOJ6322「雅礼国庆 2017 Day6」Star Way To Heaven

    写这篇题解是因为作者太蒻已经忘了最小生成树了. <题面> 这个题还真是想不到最小生成树. $80\%$算法 复杂度:$\Theta(k^2 \log N )$ 用了二分答案(明显答案具有单 ...

  8. uva 10036

    10036 - Divisibility 额..直接复制不过来,只好叙述一下了...t组样例,n个数(1-10000),k(2-100)是要取余的数,然后给出n个数第一个数前不能加正负号,其他的数前面 ...

  9. []jnhs]日志套件log4j输出到控制台和文件

    log4j的xml配置文件改为 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j: ...

  10. BIRT简介

    BIRT(Business Intelligence and Reporting Tools,商业智能和报告工具,曾被安讯公司中国分公司译作百灵)项目是一个开源软件项目,其为富客户端应用和Web应用程 ...