代码规范的重要性之-为何谷歌要执行严格的代码编写规范

咱们在谷歌所作事情中另一个让我感到异常有效、有用的制度是严格的编码规范。程序员

在到Google工做以前,我一直认为编码规范没有什么用处。我坚信这些规范都是官僚制度下产生的浪费你们的编程时间、影响人们开发效率的东西。编程

我是大错特错了。编码

在谷歌,我能够查看任何的代码,进入全部谷歌的代码库,我有权查看它们。事实上,这种权限是不多人能拥有的。可是,让我感到惊讶的倒是,如此多的编码规范—缩进,命名,文件结构,注释风格—这一切让我出乎意料的轻松的阅读任意一段代码,并轻易的看懂它们。这让我震惊—由于我觉得这些规范是微不足道的东西。它们不可能有这么大的做用—但它们却起到了这么大的做用。当你发现只经过看程序的基本语法结构就能读懂一段代码,这种时间上的节省不能不让人震撼!spa

反对编码规范的人不少,下面是一些常见的理由,对于这些理由,我之前是深信不疑。设计

这是浪费时间!


  • 我是一个优秀的程序员,我不肯意浪费时间干这些愚蠢的事。个人技术很好,我能够写出清晰的、易于理解的代码。为何我要浪费时间遵照这些愚蠢的规范?答案是:统一是有价值的。就像我前面说的—你看到的任何的一行代码—不管是由你写的,仍是由你身边的同事,仍是由一个跟你相差11个时区的距离人写的—它们都有统一的结构,相同的命名规范—这带来的效果是巨大的。你只须要花这么少的功夫就能看懂一个你不熟悉(或彻底未见过)的程序,由于你一见它们就会以为面熟。orm


我是个艺术家!


  • 这种话很滑稽,但它反映了一种常见的抱怨。咱们程序员对于本身的编码风格一般怀有很高的自负。我写出的的代码的确能反映出个人一些特质,它是我思考的一种体现。它是个人技能和创造力的印证。若是你强迫我遵照什么愚蠢的规范,这是在打压个人创造力。可问题是,你的风格里的重要的部分,它对你的思想和创造力的体现,并非藏身于这些微不足道的句法形式里。(若是是的话,那么,你是一个至关糟糕的程序员。)规范事实上可让人们能够更容易的看出你的创造力—由于他们看明白了你的做品,人们对你的认识不会因不熟悉的编码形式而受到干扰。ci


全部人都能穿的鞋不会合任何人的脚!


  • 若是你使用的编码规范并非为你的项目专门设计的,它对你的项目也许并非最佳方案。这没事。一样,这只是语法:非最优并不表示是很差。对你的项目来讲它不是最理想的,但并不能代表它不值得遵照。不错,对于你的项目,你并无从中得到该有的好处,但对于一个大型公司来讲,它带来的好处是巨大的。除此以外,专门针对某个项目制定编码规范通常效果会更好。一个项目拥有本身的编码风格无可厚非。可是,根据个人经验,在一个大型公司里,你最好有一个统一的编码规范,特定项目能够扩展本身特定的项目方言和结构。开发


我善长制定编码规范!


  • 这应该是最多见的抱怨类型了。它是其它几种反对声音的混合体,但它却有自身态度的直接表现。有一部分反对者深信,他们是比制定编码规范的人更好的程序员,俯身屈从这些小学生制定的规范,将会下降代码的质量。对于此,客气点说,就是胡扯。纯属傲慢自大,荒唐好笑。事实上他们的意思就是,没有人配得上给他们制定规范,对他们的代码的任何改动都是一种破坏。若是参照任何一种合理的编码规范,你都不能写出合格的代码,那只能说你是个烂程序员。it

当你按照某种编码规范进行编程时,必然会有某些地方让你摇头不爽。确定会在某些地方你的编码风格会优于这些规范。可是,这不重要。在某些地方,编码规范也有优于你的编程风格的时候。可是,这也不重要。只要这规范不是彻底的不可理喻,在程序的可理解性上获得的好处会大大的补偿你的损失。效率

可是,若是编码规范真的是彻底不可理喻呢?

若是是这样,那就麻烦了:你被糟蹋了。但这并非由于这荒谬的编码规范。这是由于你在跟一群蠢货一块儿工做。想经过把编码规范制定的足够荒谬来阻止一个优秀的程序员写出优秀的代码,这须要努力。这须要一个执著的、冷静的、进了水的大脑。若是这群蠢货能强行颁布不可用的编码规范,那他们就能干出其它不少傻事情。若是你为这群蠢货干活,你的确被糟蹋了—不论你干什么、有没有规范。(我并非说罕有公司被一群蠢货管理;事实很不幸,咱们这个世界历来就不缺蠢货,并且不少蠢货都拥有本身的公司。)

相关文章
相关标签/搜索