译自:http://blog.jetbrains.com/upsource/2015/07/23/what-to-look-for-in-a-code-review/
作者: Trisha Gee
转自:http://blog.jobbole.com/92049/
译者: ashiontang
让我们来谈谈代码审查(Code Review)。如果花几秒钟去搜索有关内容,你会发现许多论述代码审查好处的文章(例如,Jeff Atwood的这篇文章)。你还会发现许多介绍如何使用代码审查工具的文档,比如我们常用的Upsource。但能够在你审查他人代码时指导查什么的内容却很少见。
或许没有明确审查条目的原因是:有太多不同的因素需要考虑。就像对任何(功能性或非功能性)需求,个体组织对各个方面的优先级都有不同的考虑。
由于文章主题覆盖面广,本文旨在概述了代码审查者在代码审查时可以关注的一些方面。各方面优先级的分配和持续检查是一个非常复杂课题,具有研究价值。
无论是使用 Upsource 类似工具审查代码,还是在同事查他们代码期间,不管哪种情况,相比较而言评审有些内容要更容易。例如:
这些检查都是有意义的——你希望尽可能减少不同代码间的上下文切换并减少认知负荷,那么代码看上去越一致越好。(译者注:认知负荷(Cognitive Load)是指人在完成任务过程中进行信息加工所需要的认知资源的总量。)
但是,人工审查这些内容可能没有充分利用团队的时间和资源,因为其中大部分检查可以自动化。许多工具都能确保代码格式一致,包括命名和 final 关键字的使用规范,而且能发现简单编程错误造成的常见bug。例如,你在命令行中运行IntelliJ IDEA的检查,那么就不需要所有团队成员在他们的集成开发环境中进行相同的检查。
哪些事情适合代码审查者做?在代码审查时,哪些事情是工具不能代劳的?
事实上,代码审查者可以做的事情很多。当然,下面给出的不是一份详尽的列表,这里也不会深入探讨其中的任何一项。相反,这应该是团队交流的起点,现在你们在代码审查中关注什么,也许正是你们需要审查的内容。
如何编写“良好”代码是每个开发者都能各抒己见的主题。如果你有一些可以加入我们列表的内容,希望能在评论中收到你的回复。