关闭

Google内部在代码质量上的实践

时间: 2018-01-04阅读: 1796标签: 代码

良好的编程习惯涉及到很多方面,但在软件行业内,大多数的公司或组织都不会把良好的编程习惯列为主要关注点。 例如,具有可读性和可维护性的代码比编写好的测试代码或使用正确的工具更有意义,前者的意义在于可以让代码更易于理解和修改。 但是,我们如何确保工程师在遵循这些实践的同时,还能保证工程师能够独立的做出合理的工程决策?

很多年前,一群Google员工聚集在一起来探讨解决这个问题,他们自称为“Code Health”小组。为什么叫“Code Health”?在工程生产力这个圈子里,通常会使用一些具有一定内涵的术语,比如最佳实践,编码标准,代码质量等,但也可能导致人们会误解我们正在从事的事情和我们实际想要关注的内容不是同一件事。我们真正所关心的是软件工程的过程和实践,即在编写软件的过程中,能够影响代码的可读性,可维护性,稳定性或代码简洁性的任何方面。我们喜欢把“Health”的代码作为所有这些领域的统称。

一般情况下,这是许多作者,理论家和会议发言人所涉及的领域,但在公司或组织内部通常不会配备专门的资源来做这样的事情。在大多数软件公司,都是由一些工程师在额外的时间进行推动,或者由高级技术人员进行领导。但是,每个软件工程师实际上都以某种方式参与“Code Health”。毕竟,我们都是编写代码,而且我们大多数人都非常关心如何做到“正确的方式”。那么为什么不创建一个能够帮助工程师以“正确的方式”做事的组织呢?

这也并不是说我们对Google的工程实践有强制的规定。我们仍然让工程师自己做出对他们的项目最明智的决定。“Code Health”团队所做的工作是努力改善工程师的生活,并以更短的迭代时间编写产品代码,减少开发工作中需要耗费的精力,提高代码稳定性和改进性能。当他们的代码变得更容易理解,他们的库变得更简单时,每个人都会发自内心的感激,因为我们都知道这些改变能让我们更快地做出更好的产品。

但是,我们如何完成这一切呢?好吧,在Google,“Code Health”的实践有很多种形式。 在Google内部有一个由20%(Google内部鼓励员工自由安排20%的工作时间做自己认为有益于Google发展的事情)的贡献者组成的“Code Health”组织,他们致力于为每个人提高工程质量。这个小组的成员维护最佳实践的内部文档,并作为一个团队的参谋将军,为所在的团队做改善实践。有时候对于关键项目,小组成员会直接参与重构代码,改进库,或改进工具来促进“Code Health”。

例如,这个核心小组保留了Google的代码审查指南,撰写了关于最佳实践的内部出版物,组织了关于提高生产力的技术讲座,致力于在Google培养优秀的软件工程文化。

一些“Code Health”小组的高级成员还建议项目主管和团队领导如何改进他们团队的工程实践。然而并不是所有人都清楚如何在一个团队实施有效的代码健康实践,我们要先让团队中的一些人比其他人有更多的经验,我们提供咨询和经验来帮助团队中成员不断进步,团队成员之前互相影响,最终简化代码和开发者体验便能成为现实。

除了“Code Health”这个核心小组之外,Google的许多产品和团队都有自己的“Code Health”组织。这些组织倾向于在实际的编码项目上更加密切地工作,比如通过重构解决技术债务,制作检测和防止错误编码实践的工具,创建自动代码格式化器 automated code formatters,或者使系统自动删除未使用的代码。通常,这些小组会与核心小组协调并会面,以确保我们不会在整个公司做重复的工作,因此我们可以与Google的其他人共享出色的新工具和系统。

多年来,Google的“Code Health”团队对工程师在Google快速开发优质产品的能力上产生了重大影响。但是代码复杂性并不是一个只影响Google的问题,它会影响编写软件的每个人。因此,为了帮助每个人,我们计划在未来几周和几个月内发布文章,详细介绍我们鼓励内部的具体实践,这些实践可以在任何地方应用于帮助您的公司,代码库,团队和您。请继续关注Google测试博客,更多Code Health文章即将推出!


作者:Max Kanat-Alexander原文链接翻译来源
Google代码健康组技术主管,《简约之美:软件设计之道》一书的作者。


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/315

如何写出优雅的 JS 代码?使用 SOLID 原则

把这六个原则的首字母联合起来(两个 L 算做一个)就是 SOLID (solid,稳定的),其代表的含义就是这六个原则结合使用的好处:建立稳定、灵活、健壮的设计。下面我们来分别看一下这六大设计原则。

优秀的程序员要学会少敲代码,多思考!

如果只把一个字符一个字符地敲代码叫做 Coding,未免悲哀了一点。优秀的项目,编码阶段实际敲代码的时间不会很长;优秀的程序员,大部分时间都用来思考了。这个时候,你就需要学会代码评审,什么?

Clean Code之JavaScript代码示例

作为一个开发者,如果你关心代码质量,除了需要认真测试代码能否正确执行以外,还要注重代码的整洁(clean code)。一个专业的开发者会从将来自己或则他人方便维护的角度考虑如何写代码

程序员该如在低代码和无代码开发中抉择?

对于一个人第一次是如何了解低代码/无代码这两种开发方式,我总是充满好奇。这就是为什么我觉得贸易展会是如此有趣的原因;因为我可以拿同样的问题问每一个走进你的展台的人们。通常这是我问他们的第一个问题,当然是在扫描了他们的胸牌之后。

怎样使你的 JavaScript 代码简单易读

解决一个问题可以有很多方法,但是有些方法很复杂,甚至有些是荒谬的。在本文中,我想谈谈解决一个问题时的好方案和坏方案。

后端传过来一个JS代码,前端拿到之后执行

今天收到了一个需求,居然是后端给我传过来一个JS代码,然后前端去执行。因为后端传过来的JS代码是一个字符串,所以刚开始有点懵,以前也没有做过这样的东西所以刚开始没有方法。

如何写出优雅耐看的JavaScript代码?

在我们平时的工作开发中,大多数都是大人协同开发的公共项目;在我们平时开发中代码codeing的时候我们考虑代码的可读性、复用性和扩展性。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。

Js高程:教你如何写出可维护的代码

在平时工作开发中,大部分开发人员都花费大量的时间在维护其他人员的代码。很难从头开始开发新代码,很多情况下都是以他人成果为基础的,或者新增修改需求,自己写的代码也会被其他开发人员调用

如何执行innerHtml中的script代码?

有时候我们会有把一整段 HTML 动态塞进页面的需求,例如渲染了一个模板,从服务器端获取了一段广告代码等。一般情况下我们使用 container.innerHTML 即可

程序员吐槽:经常熬夜敲代码,谈了四年的女朋友提出分手了

这年头说起程序员,普通人都会很羡慕他们的高薪,毕竟刚工作就可以月薪上万,三五年工作月薪两万,干一年相当于普通人干个5年的,谁又能不眼红呢?不过程序虽然高薪,但也有自己的苦处。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!