谷歌程序必经之路(2) —— 代码编写规范

Google_Wall
  • 你只需要花这么少的功夫就能看懂一个你不熟悉(或完全未见过)的程序,因为你一见它们就会觉得面熟。答案是:统一是有价值的。
  • 对于你的项目,你并没有从中获得该有的好处,但对于一个大型公司来说,它带来的好处是巨大的。

我们在谷歌所做事情中另外一个让我感到异常有效、有用的制度是严格的编码规范。在到Google工作之前,我一直认为编码规范没有什么用处。我坚信这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率的东西。我是大错特错了。

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

为什么有人反对编码规范?—— 从误解看规范的重要性

反对编码规范的人很多,下面是一些常见的理由,对于这些理由,我以前是深信不疑。

这是浪费时间!

我是一个优秀的程序员,我不愿意浪费时间干这些愚蠢的事。我的技术很好,我可以写出清晰的、易于理解的代码。为什么我要浪费时间遵守这些愚蠢的规范?

答案是:统一是有价值的。就像我前面说的—你看到的任何的一行代码—不论是由你写的,还是由你身边的同事,还是由一个跟你相差11个时区的距离人写的—它们都有统一的结构,相同的命名规范—这带来的效果是巨大的。你只需要花这么少的功夫就能看懂一个你不熟悉(或完全未见过)的程序,因为你一见它们就会觉得面熟。

我是个艺术家!

这种话很滑稽,但它反映了一种常见的抱怨。我们程序员对于自己的编码风格通常怀有很高的自负。我写出的的代码的确能反映出我的一些特质,它是我思考的一种体现。它是我的技能和创造力的印证。如果你强迫我遵守什么愚蠢的规范,这是在打压我的创造力。

可问题是,你的风格里的重要的部分,它对你的思想和创造力的体现,并不是藏身于这些微不足道的句法形式里(如果是的话,那么,你是一个相当糟糕的程序员)。规范事实上可以让人们可以更容易的看出你的创造力——因为他们看明白了你的作品,人们对你的认识不会因不熟悉的编码形式而受到干扰。

所有人都能穿的鞋不会合任何人的脚!

如果你使用的编码规范并不是为你的项目专门设计的,它对你的项目也许并不是最佳方案。这没事。同样,这只是语法:非最优并不表示是不好。

对你的项目来说它不是最理想的,但并不能表明它不值得遵守。不错,对于你的项目,你并没有从中获得该有的好处,但对于一个大型公司来说,它带来的好处是巨大的。除此之外,专门针对某个项目制定编码规范一般效果会更好。一个项目拥有自己的编码风格无可厚非。但是,根据我的经验,在一个大型公司里,你最好有一个统一的编码规范,特定项目可以扩展自己特定的项目方言和结构。

我善长制定编码规范!

这应该是最常见的抱怨类型了。它是其它几种反对声音的混合体,但它却有自身态度的直接表现。有一部分反对者深信,他们是比制定编码规范的人更好的程序员,俯身屈从这些小学生制定的规范,将会降低代码的质量。

对于此,客气点说,就是胡扯。纯属傲慢自大,荒唐可笑。事实上他们的意思就是,没有人配得上给他们制定规范,对他们的代码的任何改动都是一种破坏。如果参照任何一种合理的编码规范,你都不能写出合格的代码,那只能说你是个烂程序员。当你按照某种编码规范进行编程时,必然会有某些地方让你摇头不爽。肯定会在某些地方你的编码风格会优于这些规范。但是,这不重要。在某些地方,编码规范也有优于你的编程风格的时候。但是,这也不重要。只要这规范不是完全的不可理喻,在程序的可理解性上得到的好处会大大的补偿你的损失。

如果编码规范真的是完全不可理喻呢?

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


文章的写作思路非常欧美范,针对问题做解答,不过读了之后很受用,分享给大家……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容