• Code Review是个好东西为何你就用不好?
  • 发布于 2个月前
  • 217 热度
    1 评论
今天先聊聊 Code Review。

Code Review 在国内一直算个痛点,明知道是个好东西,就是用不好。要么是制度问题,要么是流程问题,要么是观念问题,据我了解,国内 Code Review 做得又好又有效的,不算多数。我自己创业之前,也在几家公司工作过,并试图推行过 Code Review,最终都无疾而终,不知道是不是咱们中国工程师都不大喜欢看别人代码,也不喜欢别人看自己的代码并提出改进意见呢?

但是,我接触到的很多硅谷华人工程师,Code Review 做的非常好,比如在 Airbnb,没有经过 Code Review 的代码是不可能部署上线的,关于这个问题,我请教了朱赟博士。

其实朱赟在自己的书里详细的探讨过 Code Review 的利弊和做法,不过在直播节目中,她又做了提纲挈领的总结,并提出了一些有趣的观点。朱赟认为:

从零到一是困难的,国内之前没有 Code Review,想要去做,其实就是去模仿一个好的体质。这个不是一件容易的事。因为别人的体制,就比如说美国的这个宪法,它有多强我们都知道,立宪这么多年了基本上就没有改过。别的国家试图去抄美国的宪法,怎么着都没有办法实现。因为这样的体制与人、环境、观念息息相关,并不是放之四海皆准。

有些东西别人可能在自己的地盘玩儿的很转,但是你抄过来就玩儿不转了。为什么?因为别人从零到一的原因跟你不一样。就好像为什么微信跟支付宝在中国做的这么牛,美国就不行?并不是说技术上有多难,而是有很多的背景信息在里面的。

如果你真的是觉得 Code Review 有用,想去推进这个方法,光靠团队里的几个人有想法是不够的,有三种可能的可行建议,我在这里和大家沟通一下:

第一、自下而上。你要让所有的人都认识到这个东西的重要性,所有人都同意去做这件事情,并且是非常认真去执行。这需要进行大量的沟通工作,是一个自下而上的过程。

第二、自上而下。团队里有个关键人物,比如总监或技术经理,可以拍板建立一个制度,这个制度强制到你没有严格的 Code Review,就不能上线。如果你没有严格的执行 Code Review,认为自己的代码 OK,一旦后期发现代码问题或不合规范,要有严厉的处罚措施。这是自上而下的 Push。

第三、建立完整的制度和流程。开启一个新的事物需要有充分的准备,不是说来我们做 Code Review 吧,就能把这个事情做成。在开始之前,先建立 Guideline(指南),把大纲和规则列出来,比如 if else 不能超过多少层,异常的处理办法等等。把这些规则和 Code Style 做成一个系统的文档,然后再根据这样细致的法则去做,就会比较容易一些。

朱赟说到这里,我补充了一点,就是工具的重要性。最初没有 Github 或 Gitlab 的 Pull Request 功能,大家会用各种方式去做 Code Review,比如 Review Board,用起来很难受,体验和效率都比较差。当然了,安姐说工具是次要的,制度才是主要问题,我也是同意的。不过,如果一个工具或流程让人操作起来既繁琐又复杂,可能也是阻碍 Code Review 的一个原因吧。

好在现代工程师们基本都认同了现有的 PR 机制,所以我和大师也准备在团队里推行一下 Code Review,希望为大家做出更高质量的「极客时间」。
用户评论