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

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

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

很多年前,一群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代码健康组技术主管,《简约之美:软件设计之道》一书的作者。


使用React Hook提高代码复用性

Hook 是 React 16.8 的新增特性。是对 React 函数组件的一种扩展,通过提供一些特殊的函数,让无状态的组件拥有状态组件才拥有的能力。没有Hook之前写组件有两种形式,分别为:函数组件,class组件

JS无形装逼,最为致命

单行简洁的代码很难维护(有时甚至难以理解),但这并不能阻止广大攻城狮们脑洞,在编写简洁的代码后获得一定的满足感。以下我最近的一些收藏javascript精简代码集合。

用什么工具保证一致的代码风格?

首先这个问题展开来讲就是:如何在Node.js模块编写中保持代码一致性风格,目前来说基本上有四种工具可以完成JSLint,JSHint,JSCS,ESLint。

Js代码压缩工具推荐

JavaScript 代码压缩是指去除源代码里的所有不必要的字符,而不改变其功能的过程。这些不必要的字符通常包括空格字符,换行字符,注释以及块分隔符等用来增加可读性的代码,但并不需要它来执行。

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

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

怎么避免写出烂代码

命名规则:除非在小于 5 行的函数里,否则不要使用单字命名变量,规则:不要使用名词加数字的命名方法,规则:应该且只有方法和函数以动词开头

除了敲代码,你还有什么副业吗?

作为一名程序员,除了敲代码之外的一些副业!什么是副业?副业就是主要事业以外附带经营的事业。我们都是程序员,大多数都是普通人,都在替别人打工,虽然收入在别人眼中挺高,但是在霸都连个首付都付不起。

Js代码_Js整洁之道

整洁的代码不仅仅是让人看起来舒服,更重要的是遵循一些规范能够让你的代码更容易维护,同时降低bug几率。1. 用命名的变量代替数组下标,2. 函数的参数最好<=2个,尽量避免3个。

散布JS无限循环代码,日本13岁女学生被抓

近日,一名13岁女孩被指控传播未经授权的恶意程序。警方近日质询并指控了一名13岁的女学生,起因是她将一段恶意代码的链接放到了在线公告栏上,广泛传播代码。这段有问题的恶意代码是弹出警告消息的无限循环,每当你点击确定就会立即显示新的消息。

看看这些被同事喷的JS代码风格你写过多少?

现在写代码比以前好多了,代码的格式都有eslint,prettier,babel(写新版语法)这些来保证,然而,技术手段再高端都不能解决代码可读性(代码能否被未来的自己和同事看懂)的问题,因为这个问题只有人自己才能解决

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

广告赞助文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全