WHY review code?

原文作者:Sophie Alpert

译者:UC 国际研发 Jothy

写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。

最近有位朋友问我为什么做 code review 很重要。 至少大多数硅谷科技公司都会对每一个变更进行 code review,以确保至少有两个人看过该变更。 在我之前的工作中,我们选择性地(很少)进行 code review,后来团队来了一位 Google 的新员工,他鼓励我们 review 所有代码 - 我们照做了。 事实证明这是个了不起的决定。

如果你按正确的方式 code review,它不会让你觉得麻烦。 你和你的 reviewer 不是对手关系,你们是一起努力构建最好的软件。(重点是不要太介意反馈(feedback) - 即使你得改动代码,也不代表你有问题。获得反馈很正常,因为它帮助了你成长!)

有些公司严格规定了每一段代码必须有多少人review ,以及为每一段代码必须确定好严格的 owner。 我觉得这么做完全没有必要,我更喜欢简单点的系统,唯一的规则是每段代码都必须有人 review。 在实践中,你仍然得向维护你所改代码的人提交评论,但不做硬性要求会更好一些。

以下是我想到的为什么 review 很重要的几大原因。 还挺多的呢!

  1. 代码本身。 code review 最明显的价值是“发现错误”。 或者如果你再深入一些,发现了一些作者不知道的最佳实践或潜在规则的 case,你可以反馈给他以改进具体代码。

  2. 宏观层面的知识分享。 当 review 别人的代码时,你其实是在学习有益的新技术 - 反之亦然,可能别人在 review 你代码时给你提了更好的建议。 如果你能够学以致用,你将成为很棒的工程师。

  3. 微观层面的知识分享。 通过增加熟悉所有代码的人数,来缓和“公车因子(bus factor)”。(译者注:公车因子越大,代表关键人物流失导致项目受到影响的概率越小)

  4. 趋势分享。 相应地,code review 迫使你与队友交流你们正在做的事情,你们可以有机会回滚,这也确保了你们方向的正确性。

  5. 沟通实践。 无论是在团队内部还是外部,清晰的沟通都是成功工作的最重要技能! code review 给了你练习清楚写作的机会,不论是描述变更目的,还是提交反馈的时候。 而且幸运的话,下次你要写一些“非常重要”的东西时,你会发现自己早就准备好了。

  6. 历史记录。 根据我的经验,如果人们知道他们写的东西会有人看,他们会写出更好的 commit 消息。 这在回顾旧变更时非常有用!

  7. 可以讨论的东西。 有时候你想同意某一变更,你会发现很难口头描述以及表达对特定算法细节的赞同。通过一段代码进行交流会更精确些,因为代码往往比较明确。

  8. 团队凝聚力。 当 code review 变成常规活动时,你会感觉更像是一个团队一起工作,而不是每个人“都在自己的轨道上”。

  9. 阅读练习。 练习阅读别人的代码,有助于你把自己的代码写得更具可读性(因此可维护)。 这会让你之后写出更好的代码!

如果非得做个选择,那么原因 2、5、6 对我来说可能是最重要的。

查看英文原文

好文推荐: React 作者关于 Hooks 的深度 issue,值得你阅读


“UC国际技术”致力于与你共享高质量的技术文章

欢迎关注我们的公众号、将文章分享给你的好友

img

猜你喜欢

转载自juejin.im/post/5c258e98f265da61506487ee