返回博客归档

ISSUE / 009

[译]Why review code?

[译]为什么我们要进行代码审查? 原文:https://sophiebits.com/2018/12/25/why-review-code.html 备注:自个儿翻译的,翻译如有错误,欢迎指出 最近有个朋友问我,为什么 code review(代码审查) 很有必要并且很有价值?至少硅谷的大部分技术公司至…

树影落在墙面上的编辑照片

[译]为什么我们要进行代码审查?

原文:https://sophiebits.com/2018/12/25/why-review-code.html
备注:自个儿翻译的,翻译如有错误,欢迎指出~

最近有个朋友问我,为什么 code review(代码审查) 很有必要并且很有价值?至少硅谷的大部分技术公司至少会有两个人会对每一处的修改进行审查。在我的上一份工作中,我们只在一段时间里对一小部分的代码进行审查,直到有一位来自 Google 的新员工加入了我们,他鼓励我们对所有的代码做审查。我们听从了他的建议,emmm,这真是一个 great 的决定。

如果代码走查的方式正确,它就不会成为你的一种负担。你和你的代码审查者之间不是对手的关系,你们之间应该是一起努力共同构建最棒的软件工程的关系。(最重要的是不要带有情绪去看待给你的反馈,即使你的代码需要更改,但那并不意味着你的代码很糟糕。获得反馈是正常的,它会帮助你成长!)

有些公司对每一段代码必须有多少人审查有着严格的规则,并且严格执行每一段代码都要有负责人。我觉得这没必要,我更喜欢一个简单的系统,唯一的规则就是每段代码都必须有人审查就够了。在实操过程中,我觉得你应该对你的代码进行说明并且抄送给审查者,虽然这并没有硬性规定。

以下几点是我认为为啥代码审查具有价值的几点原因:

  1. 代码本身。代码审查最直观的价值通常是“捕获错误”。或者是有更好的最佳实践或者是一些作者不知道的写法,审查人可以通过此帮助代码的人提高作者的 coding 能力。
  2. 宏观层面的知识分享。当你做代码审查时,你可以从代码本身学习一些新的技术,可能对你之后有帮助。反之亦然,如果有人建议你的代码有更好的写法,你也可以学习到新的知识。你在这过程中积累了知识,相信它会帮助你成为一名更好的工程师的。
  3. 微观层面的知识分享。通过增加熟悉代码的人减轻“面向工位编程”带来的问题(有的人的代码由于各种原因,只有他能维护)。
  4. 确认方向。代码审查会强迫你跟你的队友沟通你正在做的事,这不会让你在接下来的几天或者几周时间里走错方向。

    > 译者注:这个方向更多的是你构造代码的整体思路。
  5. 锻炼沟通能力。无论是在团队内还是团队外,良好的沟通能力,都是高效工作的重要的能力之一。代码审查给你提供锻炼写作能力的机会,因为你既要去描述你的代码作出的改变,又需要评价别人的代码。当你在之后的工作中如果有更重要的表达需要的时候,代码审查锻炼的沟通能力就能发挥出作用了。

  6. 提交信息。根据我的经验告诉我,当你清楚的知道你所写的文字要给别人看的时候,你会写出更好的提交信息。这在我们做代码回滚和 bug 排查的时候就很有帮助了。
  7. 有待讨论的东西。当你试图作出一些改变并希望争取到大家的一致意见时,有时候很难通过口头描述或者特定算法的细节来实现。这时候通过一段代码来沟通可能更精确些,因为代码往往更清晰。
  8. 团队凝聚力。当你进行代码审查工作时,你通常不是一个人在战斗,而更像是一个团队在协作。
  9. 锻炼阅读代码的能力。阅读别人的代码有助于自己写出更具可读性(维护性更高)的代码。这是一个良性循环。

如果非要选择几个最有价值的原因,我选择第2、第5和第6点。