15208187678

为企业构建全球竞争力,行业信息化整体解决方案

For the enterprise to build the global competitiveness industry informatization overall solution

每个开发人员都应该知道的8条代码审查提示
2021-03-08 24次 代码审查

我们最近写了一篇有关代码审查的重要性的文章。今天,我们想提供一些技巧和窍门,以有效地审查代码。

但是,在继续进行这些技巧之前,我们应该强调,有效的代码审查的基础是工作流规划。有效的计划应该导致简短而有效的代码审查。如果您的代码检查过程很繁琐,那么最好检查整个团队的工作流程,而不是着眼于个人的个人生产力。

代码审查技巧1-代码审查适用于整个团队

代码审查可帮助开发人员熟悉他们尚未亲自编写的代码,从他人的错误中学习以及发现新技术。每个参与人员都会从流程中脱颖而出,但这就是每个人都应该参与代码审查的原因。

我们应该注意,有些机构有一组开发人员编写代码,而另一组则审查该代码,但是这种方法有很大的缺点。将代码编写者与代码审查者分开可以导致“我们与他们”的氛围,其中代码审查者将代码编写者批评为批评者,而不是同行。

代码审查技巧#2-简短易懂

大多数开发人员说,一个小时的代码审查过程通常是有效的。我们认为一个小时是一个合理的上限。就是说,如果预计您的审核将花费一个多小时,则最好将流程分成多个会话并进行休息。请记住,冗长的代码审查过程通常并不那么有效;尝试将工作流中的任务分解为较小的任务,从而编写(和检查)较小且更易于管理的代码块。

在全美,代码审查通常需要10到30分钟左右的时间。我们假设如果需要30分钟以上,则说明我们没有正确构建工作流程。例如,如果我们需要开发用户登录功能,则将其分为几个小任务:例如,通过社交网络登录,通过电子邮件和密码登录以及重置密码。

代码审查提示#3-一次不要审查太多代码

我们的经验表明,一次审阅200行以上的代码非常困难,而审阅400行的代码则是一场噩梦。因此,在较长的代码审查期间要休息一下,或者甚至更好地设置您的工作流程,以便开发人员编写一小段代码进行审查。如果由于某种原因您无法将代码分解为足够小的块,那么另一种选择是在所有代码完成之前(甚至每天)进行代码审查。更加频繁的代码审查将使您能够跟踪开发人员的进度,并帮助您的团队避免错误发生。

如果您的时间非常有限,并且您无法分配资源来进行完整的代码审查,那么通常的做法是仅检查所编写代码的20%到30%。在这种情况下,所有开发人员仍将保持其代码的形状,以防需要审查以确保质量。

代码审查技巧#4-列出待办事项并检查常见错误

为了确保您在代码检查过程中不会错过任何内容,最好对所有需要检查的内容做一个检查清单。例如,每次查看代码时,我们都会特别注意代码的安全性,业务逻辑实现和用户访问权限。这些项目将成为我们任何代码审查清单的起点。您可能还会列出开发人员经常犯的错误,因此请确保在每次检查时都检查一下。

代码审查技巧5-使之无痛

如果您要提交代码以供审核,请确保您的代码清晰明了,并且不需要其他解释性注释。提交时,请为审阅者提供必要的上下文,以便他们可以立即深入到代码中。

在全美,我们通过GitHub中的Pull Request功能将代码提交以供审核。使用“拉取请求”时,应列出对代码所做的更改,并在必要时有机会描述所做的修改。此附加文档使代码审查更加有效。

代码审查技巧#6-定义代码准备情况

为准备好查看的代码定义严格的要求是明智的工作流程规划的另一个组成部分。在每次代码审查之前,我们Ruby Garage的开发人员应扫描他们的代码中是否有常见错误,检查是否编写了足够的测试以进行自动审查,并根据相关的样式指南来验证其代码是否已编写。

我们有一个持续集成服务器,它通过运行一系列先前编写的自动化测试来检查提交的每个新代码块。只有当代码成功通过这些测试时,GitHub才会表明它已准备好进行手动检查。这使整个开发过程更加透明。

代码审查技巧#7-定义您的目标

代码审查的最明显目标是发现错误。但是,特定审核的目标将取决于您当前的项目时间表和团队规则。您是否专注于代码如何表示所需的功能,还是还希望避免代码异味并确保代码遵守样式指南?通常,您可能没有足够的时间来实现上述所有目标,因此您必须确定最重要的目标。在全美,我们尝试编写最好,最无错误的代码,因为实践表明我们很少有时间进行重构或其他代码审查。

代码审查技巧#8-量化代码审查的有效性

管理人员始终希望使流程更有效。但是如何使代码审查更有效?最好的方法是设定可量化的目标。例如,您可以根据随时间推移的支持凭单数量或基于开发注入的缺陷数量来量化代码的质量。您可能还需要注意标记(包括缺陷率,缺陷密度和检查率),并设置适当的工具来收集此类指标。

不幸的是,很少有团队利用这种工具。我们的全美开发人员通过写下审核期间指出的关键缺陷并在必要时进行讨论来手动检查审核的有效性。

有效的代码审查始于扎实的工作流程

这些技巧应有助于您优化代码审查过程。然后,您的工作流程将决定如何管理代码版本,在何处上传新代码块,如何查看该代码等等。在全美,我们使用Git,这些规则是在称为Git Flow的东西中定义的,我们将在以后再讨论。

推荐阅读