基于Revision 3.188
本文只用于加深自身对C++的理解和掌握,翻译不求信雅达,兴而所致,讹误必多,读者慎之!建议读者参考原版或YuleFox的译文。评论亦只出于个人喜好,态度更将随时间而改变。
一 背景
C++是许多Google开源项目使用的主力开发语言。正如每名C++程序员所知,C++有很多强大的特性,这种强大也导致了它的复杂,而复杂性又可能导致C++代码更容易出bug,更难读懂,更难维护。
本规范的目标是,通过详细叙述“写C++代码时该做什么,不该做什么”管理这种复杂性。规范中所有的守则都是为了在允许码农高效利用C++语言特色的同时,保持代码易于管理。
Style,亦称readability,是我们用来管理C++代码的习俗。Style这个术语有一定误导作用,因为这些习俗涵盖的内容远比源码格式多得多。
保持代码易于管理的一种办法是强制前后一致。让任何一个程序员能很快看懂别人的代码非常重要。保持一种统一的风格且遵守习俗,意味着我们能轻易地利用“模式匹配”的方法来推测出各种符号的含义及性质。创造普遍应用、必须遵守的习语和模式,看懂代码会容易得多。有时侯改变某些规范中的守则可能会有站得住脚的理由,但我们还是让代码保持原样,来保持前后一致。
本规范要解决的另一个问题是C++特性的剧增。C++是一门庞大的语言,有很多高级功能。有时候我们会限制甚而禁止使用特定的功能。这是为了保持代码简单,避免这些功能可能导致的各种常见错误和问题。本规范列出了这些功能,也解释了为什么限制它们的使用。
Google开发的开源项目均遵从本规范的要求。
注意:本规范并非C++入门指南,我们假定读者熟悉C++语言。
个人观点
Style翻译成代码规范还是挺合适的,起码“规范”这两个字不太容易被理解成格式要求。以前读书的时候一直比较轻视代码规范,现在有了些经验,慢慢意识到其重要性,即使是每行不超过80列、大括号的写法这些格式上的要求也并非形式主义。小时候字写得很烂,却一直不重视,直到高考后,才觉得写一手好字也不赖,现在则觉得真他妈的重要,可惜已经再没时间去练了。
所以这次代码规范一定得学好。