C++编程 - 编程风格
作者:flyfish 2014-3-18
白居易写诗之后都要给邻家的老婆婆看,看不懂再改,直到老婆婆完全听懂为止。这是他的风格。
代码通俗易懂,这才是风格。
读历史课本,一股马列气息扑面而来,这是它的风格。
代码前后一致,这才是风格。
故事
人类想建造一座城和一座塔,塔顶通天。由于大家语言相通,沟通无阻,建成的高塔直插云霄。没想到这事惊动了上帝,上帝让人类说不同的语言 ,这样沟通有了障碍,人类的计划失败了。
再造通天之塔。
每个人对自己编写代码有种偏好,就像大括号,有的人换行写,有的人不换行写。这种偏好的长期使用形成了个人编程风格,个人有个人的编程风格,将多个人的编程风格进行统一就形成了规范。C++是包含很多强大的特性,Google为了代码简单,限制使用C++某些特性,Google也对这些限制的特性做出了解释。虽然可能有足够的理由改变Google中某些的风格,Google的建议是放弃更改,遵循一致性。
Each line of text in your code should be at most 80 characters long.
Google的每行代码有80个字符限制,为什么呢?
因为VT100。
The VT100 is a video terminal that was made by Digital Equipment Corporation
The VT100 was also the first Digital mass-market terminal to incorporate "graphic renditions" (blinking, bolding, reverse video, and underlining) as well as a selectable 80 or 132 column display
80个字符限制,只是因为以前设备屏幕大小。如果超过80个字符就出现了滚动条,影响阅读。
所以习惯的力量是伟大的。
爱写诗写诗爱写词写词,不行,大家都要写诗而且全都是七言的。风格统一的原因是可以快速阅读代码,快速消化别人的代码。
总结1:大家遵守规范,代码就会一致,沟通就容易,那么通天之塔还是可以造出来的。
只有生物多样性,生命才会蓬勃旺盛。
看微软的做法看MFC源码中会发现一行代码超过150个字符那也是有的。
对于int型变量 有的是已i开头,有的是n开头
UINT型变量 有的是以ui开头,有的是以n开头
在Windows编程中,使用字符串时常会用到TEXT()或者_T(),结果虽然一样但是它们是不同的风格。
看微软的STL源码这风格太难读了,很考验人,只因不适应它的风格。
对于注释,它没有严格的标准类似使用自动工具注释,微软相信他们的程序员会把注释写好。
采用P.J. Plauger的STL,没有要求P.J. Plauger的代码风格跟微软的一致。
从Visual Studio 2008 SP1加入了BCG公司的代码,让界面好看点,没有要求BCG的代码风格与微软的一致。
微软看起来更像一个社会,不仅有本地人,还有外来落户的人,而且说着一口流利的方言。
总结2:编程是技术和艺术相结合的产物,每个部落都有自己的风格,各个部落运用自己的智慧自由的去展现。