Code Review (代码审查)

转载 2015年07月09日 15:43:10
我在学校写了无数代码,和其他自学成才的程序员一样,大家都是各做各的,很少和其他人交流,大多数时间是在网上找资料,再自己琢磨。到了微软之后,我加入的团队是和美国总部的工程师一起工作,分配了一个资深的工程师来给我做 Code Review,我还记得他的名字叫 Branden,其实年龄比我还小一岁,不过我研究生毕业参加工作的时候,他已经工作五年了,囧 rz。

在微软的工作流程里面,Code Review 是非常重要的一步,翻译成中文是“代码审查”,我不喜欢这个翻译,因为其实并没有上下级审批的意思。在工作中不一定是有经验老手的给新手做 Code Review,新手也可以给有经验的做 Review,只要看不懂的地方就可以提出来,看不懂说明对方写的代码不容易维护,将来写的人走了换了个人负责就会有问题。而且这来来回回的流程也是互相学习的过程,你会发现原来这个地方还可以这么写,既然要互相学习,那做 Code Review 的人也要像写代码的人一样认真思考,假装如果是我写的话会怎么办。

我刚入职的时候印象最深的是美国同事的耐心,我写的代码他非常仔细的看,提了非常多的意见,我按照他的意见改一遍,再提交给他,他再提意见,我再改,最多的时候有十几个来回的,有时候我都觉着烦了,但还是忍住了,确实对方提的意见都是对的。几年后我到了一个团队,我是里面最资深的员工,有一次在 Code Review 的时候给新入职的同事提了很多意见,还帮他做了测试,给出了我的解决方案,可能让他觉着很没有面子,他对我表达了非常不满的情绪,我非常淡然,并感受到了一种轮回的感觉,因为 Code Review 就是这样的。

加入小米之后,才发现中国大多数公司是没有 Code Review 机制的,这让我非常怀疑他们的代码质量。还好 MIUI 团队最早的工程师都是从微软过来的,尽管我们抛弃了所有可能降低效率的流程,比如再也不写 Design Spec,减少无关的测试等,但是始终坚持做 Code Review,并且和在微软的重视程度一样多。当时有从别的公司过来的同事拒绝接受别人给他提的意见,顽固坚持自己的风格,我们就让他去别的团队做新功能去了。因为只有这样,才能保证在团队快速扩张的情况下,保证工程质量和同样的代码风格。这里还要感谢 Google 做的代码管理工具 Gerrit,让我们做 Code Review 比在微软的时候都要方便。

Email and Rules (邮件与规则)

工作中难免会收到很多邮件,但是我国人民好像不喜欢用邮件来交流工作,每次我看到同事的邮箱有几千封未读邮件的时候,就感觉到了一种无奈。遇到孺子可教的新同事,我会告诉他,每天把邮件处理掉,保证没有未读邮件是一种美德,不信你看我邮箱,一封未读邮件都没有。其实这里面并不需要勤奋,秘诀就是把不该看的邮件都直接删掉。

一般来说,正常的邮件原则是,如果发件人需要你来相应,会把你放到 To 里面,如果只是需要你知情,那会把你放到 Cc 里面,如果以后不希望你再介入,会把你放入 Bcc 里面。所以要把出现在 To 里面的邮件单独列出来,优先处理。然后再把出现在 Cc 里面的列出来,看看就行。其他的如果是发给你在的小团队的,和 Cc 其实差不多的,看看就行。其他的,删掉就行,不看没啥损失,如果有问题,也是发件人的问题,谁让他不按牌理出牌呢。比如不把收件人放在 To 或者 Cc 里面,但是正文里来个@,以为这是微博呢,亲?当然公司的行政发的通知除外,所以要把重要人物(CEO,部门老大,行政主管等)发的邮件单独列出来。

怎么把不同优先级的邮件分出来?邮件规则就是干这个的。为什么我知道这么多?因为我在微软的时候就是做这个的。如何设置邮件规则?Outlook 里面有很多介绍,我就不多说了。当然有从 Google 来的同事说只要把所有的邮件导入到 Gmail,然后 Gmail 会自动帮你搞定,我表示还没有得到。

Calendar/Freebusy (日历)

这个是高级技能了,因为大多数人用不到,我也是最近才需要的。公司大了最大的表现就是会多,找人开会难,因为经常对方有别的会,时间对不上,有时候想想也挺可笑的。这种情况,经常要打很多电话,或者在微信/米聊里面沟通才能搞定,还有临时变卦的。

其实微软提供了一个很好的工具,那就是日历。首先,把自己的安排都记在日历里面;然后,开放权限让同事看到你的日程,可以只看到时间段。这样,如果大家都这么做,那召集大家开会的同事就可以在日历里面把大家都加进来,找一个大家都有空的时间段。这个技能只适用于服务器是 Exchange Server 的邮件系统。

我现在所有的安排都放在日历里面,不论工作有关还是无关的,连理发和踢球什么的都有,还养成了一个习惯,只要不在日历里面的都会自动忘掉,所以一件事没有放在日历里面的时候就很焦虑,还要手机就在旁边,加起来很方便。公司外面的人要和我约一个会,打电话的比较多,但我都会提醒对方通过邮件发一个 Meeting Request 过来,这样方便大家都记住时间,大多数时候从语气来看我谨慎怀疑对方并不用日历。

以前 MIUI 并没有好好做日历,原因是统计表明我国人民根本不用日历,使用率非常低。现在好像开始发力了,估计是因为我厂员工自己有需求了,做好了可以提高工作效率


Code Review:代码审查工具

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

Code Review 代码审查 不完全整理

1.关于Code Review 1.1 Code Review的目的 Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码、测试过程和注释进行检查。 ...

程序员必备的代码审查(Code Review)清单

程序员必备的代码审查(Code Review)清单

Code Review:代码审查工具大阅兵

http://developer.51cto.com/art/200908/141712.htm Code Review中文应该译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好...

Eclipse Code Review(代码审查)工具介绍

http://soartju.iteye.com/blog/564690 最近组内一直在做代码改进,既然是代码级别的改进,我想比较直接有效的办法就是Code Review。 虽然以前开...

程序员必备的代码审查(Code Review)清单

转自 http://blog.jobbole.com/83595/ 在我们关于高效代码审查的博文中,我们建议使用一个检查清单。在代码审查中,检查清单是一个非常好的工具——它们保证了审...
  • fhx007
  • fhx007
  • 2015年02月15日 21:12
  • 1350

开发人员需做代码审查(Code Review)的5个原因

每个人都承认代码审查(Code Review)的花销大,而且又耗时,特别是当大家忙完软件项目又把它送去软件测试部门时。对一些开发人员来说,它更是会引发更多的办公室政治和流言蜚语。   一次代码审查可...

关于代码审查(Code Review)的一些建议

  关于代码审查(Code Review)的一些建议 1、代码审查目标 代码评审不是批斗会,不能以缺陷和错误来打击开发人员的积极性,评审的最终目标是提高系统质量及团队成员整体水平。 ...
  • zh520qx
  • zh520qx
  • 2016年10月27日 22:00
  • 471

浅谈iOS开发中code review(代码审查)

代码评审是指在软件开发过程中,

Code Review 代码审查 不完全整理

1.关于Code Review 1.1 Code Review的目的 Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码、测试过程和注释进行检查。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Code Review (代码审查)
举报原因:
原因补充:

(最多只允许输入30个字)