刚才专注看了下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. Hdu 2376

    题目链接 题意:给出一颗含有n个结点的树,树上每条边都有一个长度,求树上所有路径的平均长度. 考虑树上每条边对所有路径长度和的贡献,对于每条偶 就是边的两个短点u和v,只需要记录以u为根的子树的结点的 ...

  2. (二)通过JAVA调用SAP接口 (增加一二级参数)

    (二)通过JAVA调用SAP接口 (增加一二级参数) 一.建立sap连接 请参考我的上一篇博客 JAVA连接SAP 二.测试项目环境准备 在上一篇操作下已经建好的环境后,在上面的基础上新增类即可 三. ...

  3. 转:LPC2214的PLL与定时器设置

    原地址:http://blog.sina.com.cn/s/blog_4419d72d0100mu7h.html LPC2214的PLL与定时器设置 http://www.dpj365.cn/bbs/ ...

  4. java mybatis 参数问题

  5. Jupyter notebook使用matplotlib不出图解决办法

    1.在jupyter notebook使用plot的时候没有显示图像2.在命令行知道需要使用ipython --pylab进入ipython环境才能做出图像,jupyter notebook该怎么设置 ...

  6. Leetcode492.Construct the Rectangle构造矩形

    作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的. 现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面.要求: 1. 你设计的矩形页面必 ...

  7. 【html、CSS、javascript-13】前端框架Bootstrap

    1.Bootstrap前端框架:包含css样式.js插件.图标等 http://www.bootcss.com/ 2.Font Awesome:非常全的图标大全 https://fontawesome ...

  8. LUOGU P1290 欧几里德的游戏

    题目描述 欧几里德的两个后代Stan和Ollie正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的.给定两个正整数M和N,从Stan开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数 ...

  9. [BZOJ2427][HAOI2010]软件安装-tarjan缩点-树上dp

    <题面> 这个题真伤人 之前Tarjan和树规都没学好,吃了不少亏,仔仔细细的搞了一天,收获颇丰 先来一个Tarjan的链接:$\mathbb{O}$ 题目的数据比较友好: $dp$不对: ...

  10. poj 1679 The Unique MST 判断最小生成树是否唯一(图论)

    借用的是Kruskal的并查集,算法中的一点添加和改动. 通过判定其中有多少条可选的边,然后跟最小生成树所需边做比较,可选的边多于所选边,那么肯定方案不唯一. 如果不知道这个最小生成树的算法,还是先去 ...