谷歌最佳实践 - 代码审查指南

来源html

代码审核标准

代码审核的核心目的是保证谷歌代码在不断的改进发展过程当中还能持续保证健康。全部代码审核的流程与工具都是设计用于确保这个目标。 为了实现这个目标,咱们作了不少的权衡。 首先,研发人员必须可以在我的的任务上作出改进。若是你从不提交代码的改进,那产品就没法提高。一样的,若是代码审核者对于任何变动提交都设置很高的门槛,也会影响开发者从此也提交改进的热情。 从另外一个方面说,代码审核者的责任是要确保每一个变动清单(CL)[^1]的内容都可以在全局上保证代码质量,而不会随着时间致使质量不断变差。这样其实是比较困难的,总体代码的质量削弱其实是因为代码健康度中很小的问题不断累积引起的,特别当一个小组在明确工期的压力之下,须要走一些捷径才可以达成目标。 审核者对于他们审核的代码是有权利和责任的。他们须要确保代码基线是一致风格,可维护,以及在《代码审核应该审核什么》一文中提到的其余内容。 因此,咱们指望代码审核中包含以下标准规则: 一般状况下,审核者须要确认一个变动清单对于总体系统代码必定是有质量提高的,哪怕目前还不是完美的。 在代码审核的指导规则中,这是最重要的原则。 固然,这条规则存在不少的限制。例如变动清单包含了一个系统不容许加入的特性,即便代码的设计和质量很好审核者也能够直接拒绝。 有一个很重要的观念,“完美”的代码是不存在的,只会有更好的代码。审核者不该该要求在接受提交前,就要提交者打磨变动清单中的每一个小细节。审核者须要在系统持续改进和建议重要变动之间作出平衡。与其要求完美,审核者更应该重视的是持续改进。当一个变动清单对于总体系统的可维护性,可读性,可理解性都有改进时,就不该该由于“不完美”而被拒绝几天或者几周。 审核者应该一直都能自由的对能够改进的地方留下注释意见,可是若是这并非很重要,能够在前面加上前缀如“Nit:”这样能让提交者知道这只是他们可以忽略的一个小优化点。 注意:本文档中的不会为任何恶化代码健康的提交作辩解,只有在特定的经济状况下你能够考虑这么作。git

导师制

代码审核者有一个很重要的做用就是指导开发者关于语言、框架、或者软件设计的通用规则的一些新知识。可以留下一些评论帮助开发者学习一些新知识老是好事情。分享知识对于代码质量改进也是一件好事情。你须要谨记,若是你的评论是处于纯粹教育的目的,而不是本文档中提到的评判标准,请加上“Nit:”的前缀或者提示提交者这些在变动清单中并不是须要强制修改。github

原则

  • 专业的现实状况与数据否认意见和我的偏好。
  • 针对样式问题,《样式指南》是绝对权威。任何纯粹的样式观点(如空格等)在样式指南中没有说起的都是我的偏好。这部分的风格也应当统一,若是没有事先约定则接收提交者的样式。
  • 软件设计的方面几乎不可能会是纯粹的样式问题或者我的偏好。 这些都是基于根本性的原则构建的,应当倚重于这些原则,而不是我的意见。有时会存在一些有限的选项。若是提交者可以证实(经过数据或者基于实际的工程原则)这些作法都是相近的,审核者应当接受提交者的偏好。不然就要取决于软件设计的标准规则。
  • 若是没有其余可应用的规则,审核者应当要求提交者与现有的代码基线保持一致,只要变动内容不会影响到系统的健康程度。

解决冲突

面对代码审核中的任何冲突,第一步永远应该是开发者和审核者达成一致,原则就是基于本文档和其余的文档如《变动提交者指南》和《审核者指南》。 当很难达成一致时,提交者和审核者面对面的沟通或者语音沟通就颇有必要,而不是经过代码审核的评论来解决冲突。(可是记住能够将讨论的结果以评论的形式记录在变动提交中,以便未来方便查阅) 若是上面的方法仍是不能解决冲突,常见的方法就是升级问题。升级的方法一般是发起团队会议,要求技术领导参与其中,征询代码维护者或者管理者的意见,最终作出决策。不要由于提交者和审核者没法达成一致而闲置一份提交。框架

下一篇预告:代码审核时,咱们应当寻找什么内容。ide

总结: 谷歌的代码审核中,首先要创建的是原则,编码样式、软件设计等等的原则。基于这些原则才能断定系统代码的健康程度,不是以我的喜爱或者使用了某种框架。 审核者有拒绝提交的权利,可是背负着系统改进提高和维持健康程度的责任。要熟悉企业的各类原则产生本身的判断,而且将本身的意见分为必须建议两种等级。 面对冲突时,不该当是提交者或者审核者某一方面的责任,而是双方应当力排众议尝试说服对方,当相互没法说服时能够升级问题,请求上级或者外部来评判。 在这些里面,全部的角色都有一个很重要的原则:真正的尊重代码,热爱代码。而不是随便糊弄任务,随便提交,随便审核,随便经过而且合并。这个要靠团队的文化和企业的健康来支撑。工具

[^1]:CL: 是 "changelist" 的缩写,指提交到版本控制或者提交给代码审核的一个完整自包含的变动。 在其余组织中(非股改革)称之为变动(change)或者补丁(patch)。学习

原文出处:https://www.cnblogs.com/pluto4596/p/11519528.html优化

相关文章
相关标签/搜索