代码评审标准

代码评审的主要目的是确保代码库的整体质量随时间推移逐步得到提升,所有代码评审工具和过程都是为了实现这一目标而设计的。

为了实现这个目标,必须做出一系列权衡。首先,开发人员的开发任务必须要有所进展。如果他们不提交改进的代码,代码库质量就得不到改善。此外,如果评审人员过于严格,开发人员就没有动力进行持续改进。

评审人员的职责是确保每个CL(变更列表)的质量,保证代码库整体质量不会随着时间的推移而下降。这是一项艰巨的任务,因为代码库整体质量常常会随着每次提交代码质量的小幅下降而退化,特别是有时候开发团队时间很紧,并认为必须走捷径才能完成交付任务。

评审人员要对他们评审的代码负起责任,确保代码库保持一致性和可维护性。

以下是可在代码评审中使用的准则:

一般来说,如果CL达到可以提升系统整体代码质量的程度,就可以让它们通过了,即使它们可能还不完美。

这是所有代码评审准则的最高原则。

当然,也有例外的时候。例如,如果CL中包含了系统不需要的功能,那么即使代码写得很好,评审人员也可以拒绝让它们通过。

这个世界上没有“完美”的代码,只有更好的代码。评审人员不应该要求开发人员对CL中的每一个微小部分都进行细致入微的打磨,而应该在满足需求和变更重要性之间做出权衡。评审人员不应该追求完美,而应该追求持续改进。如果一个CL能够从整体上提高系统的可维护性、可读性和可理解性,那它就不应该仅仅因为它不够“完美”而被延迟几天甚至几周。

评审人员应该提供建议,告诉开发人员哪些方面可以做得更好。但如果这些建议不是很重要,可以在前面加上像“Nit:”这样的前缀,让开发人员知道这只是一个改进建议,他们也可以选择忽略。