Fork me on GitHub

Google内部代码质量工作

Google代码健康

Posted by Kaelzhang on June 22, 2020

Google代码健康:Google内部代码质量工作

本文源于Google公司的马桶上的健康代码,作者:Max Kanat-Alexander(《Code Simplicity》的作者)

良好编码实践的很多方面并不属于软件行业中大多数“工程效能”小组关注的常规测试和工具领域。例如,拥有可读性和可维护性的代码不仅仅只是编写良好的测试或拥有正确的工具,还关乎拥有一开始就易于理解和修改的代码。但是,如何确保工程师遵循这些实践,同时又让他们做出合理的工程决策所需的独立性呢?

许多年前,一群Google员工一起解决了这个问题,他们称自己为“代码健康”小组。为什么是“代码健康”?行业中用于此目的的许多其他术语(工程生产力,最佳实践,编码标准,代码质量)具有某些涵义,这些涵义可能使某些人认为我们正在从事除我们想关注的事情之外的其他事情。我们关心的是完整的软件工程流程和实践,即软件编写方式的任何方面都可能影响代码的可读性,可维护性,稳定性或简单性。我们喜欢拥有“健康”代码的比喻,因为它涵盖了所有这些领域。

这是许多作者,理论家和会议发言人都谈及的领域,但并非通常在工程组织内部拥有专门资源的领域。相反,在大多数软件公司中,这些努力是由一些专门的工程师在额外的时间里推动的,或者由高级技术负责人领导的。但是,每个软件工程师实际上都以某种方式参与了代码健康。毕竟,我们所有人都在编写软件,而且我们大多数人都非常关心以“正确的方式”进行软件开发。那么,为什么不成立一个以“正确的方式”帮助工程师的小组呢?

这并不是说我们对Google的工程实践具有规范性。我们仍然让工程师做出最适合他们项目的决策。 ”代码健康“小组所做的工作是努力广泛地改善工程师的生活,并使之以较短的迭代时间,更少的开发工作;量,更高的稳定性和更好的性能来提升编写产品的能力。每个人都喜欢他们的代码变得更容易理解,他们的库变得更简单等等,因为我们都知道这些东西可以使我们更快地移交并生产更好的产品。

但是,我们如何完成所有这一切?嗯,在Google,代码健康的努力有多种形式。

Google范围内的代码健康小组由20%(Google的开发人员会将20%的时间用于他们认为有利于Google的工作)的贡献者组成,他们致力于使Google的工程技术更好地适用于所有人。该小组的成员维护着关于最佳实践的内部文件,并为那些想知道如何最好地改进其所在领域的实践的团队和个人充当着一个传声筒。有时,对于关键项目,该小组的成员将直接参与重构代码,改进库或进行代码健康工具提升的变更。

例如,该中心小组维护Google的代码审查指南,撰写有关最佳实践的内部出版物,组织有关提高生产率的技术讲座,并通常在Google培育良好的软件工程文化。

代码健康小组的一些高级成员还就如何改进其所在领域的工程实践向工程主管和内部领导小组提供建议。尚不清楚如何在一定范围内有效地实施代码健康实践-有些人比其他人拥有更多的经验,使他们在团队中广泛地实现这一目标,因此我们提供的咨询和经验来帮助实现简单代码和出色的开发者体验。

除了中心小组外,Google的许多产品和团队都有自己的Code Health小组。这些小组倾向于与实际的编码项目更紧密的合作,例如通过重构解决技术问题,制作可检测和防止不良编码习惯的工具,创建自动代码格式化程序或制作用于自动删除未使用代码的系统。这些小组与中心小组经常进行协调并会面,以确保我们不会在整个公司范围内重复工作,以便可以与Google的其他部门共享出色的新工具和系统。

多年来,Google的代码健康团队对工程师在Google上快速开发出色产品的能力产生了重大影响。但是,代码复杂性并不是仅是Google的问题,它影响着每个编写软件的人(从一个人用自己时间编写软件到世界上最大的工程团队)。因此,为了帮助所有人,我们计划在未来几周和几个月内发布文章,其中详细介绍了我们内部鼓励的特定实践,这些实践可广泛应用于你的公司,代码库,团队和你自己。敬请期待!


  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!