系列文章列表在页面最下方。

从我的第一份实习工作开始,Code Review 这件事情对我来说就像人应该吃饭一般天经地义。

Code Review 字面意思就是”代码” + “评论”,在代码上提供自己的评论和意见。我个人觉得特别难翻译,回国这么久了我依然用英文称呼这件事情。而且实际工作中会有各种各样的应用场景可以映射到不同的翻译,比如说:

  • 同事的代码在提交进产品之前,由另一位或者多位同事看一遍,提出整改意见,讨论,修改最终所有人都同意不需要再修改后再提交代码。我倾向把这类 Code Review 翻译成代码互查
  • 引入来自外部的代码(如开源代码,非公司内部工具)前,在条件允许的情况下需要 Review 全部代码,往往重点在代码安全性上而非业务逻辑,并且通常由公司内部的安全工程师来完成。这类 Code Review 我称为代码审查
  • 产品上线前,再做一次自动或手动的 Review,往往关注的是代码是否符合公司统一的安全标准,在我工作的公司这部分工作一般是由拿到特殊资质的员工来完成。这类 Code Review 我叫它代码扫描

我的工作中最常接触的就是代码互查,另外作为当前公司的 Security Certifier 我偶尔也会承接代码扫描的工作。可以负责任地说,我所有进入产品的代码都不是我自己拍脑袋写出来的,全部代码至少有另外一个人看过并且可能提供了宝贵的修改意见。与此同时,我也提供了大量的评论和反馈给被人的代码。对我来说,针对代码本身的讨论是一件非常有意思的事情。

好的 Code Review 绝对可以提高并保持代码质量。一个很好的证据就是其可以大幅降低一个反应代码质量低下的重要指标 WTFs per minute。

Code Quality MeasurementCode Quality Measurement

但是多年的工作经验告诉我,

  1. 代码互查并不是绝对的好,有利也有弊。
  2. 代码互查也不是一件简单的事情,好的代码互查能力来自于大量的技巧学习。
  3. 并不是所有人都有机会在工作中接触到代码互查这件有趣的事情。

因此我想写一些列关于代码互查的文章,将我的想法和经验分享出来。