代码改变世界程序员干货

读《编程匠艺—编写卓越的代码》:源代码的版面与样式

2015-01-12  本文已影响218人  思学

《新约.约翰福音》:
不可按外貌断定是非,总要按公平断定是非

一、重要的版面与样式

二、了解你的读者

为了写出有效的源代码,我们需要了解谁会阅读这些代码。我们有三类读者:

很显然,编译器对我们的影响最小。我们使用版面与样式,是向人类读者强调代码的逻辑结构。这是一种沟通,应当越清晰越好

三、什么是好的样式

下面是几种衡量样式风格质量的标准:

《C程序设计语言》中Kernighan和Ritchie:
括号的位置并不重要,尽管人们固执己见。我们从几种流行的风格中选择一种即可。挑选一种适合你的风格,然后坚持使用下去

不管在什么情况下,大小括号的位置,缩进的空格数等应当前后一致

四、了解常用代码版面风格

我们应当认识我们所选择的语言的常用代码版面风格,充分了解它们的优缺点,再根据你的审美观、你所处的编程文化以及你的习惯等,选择一种合适自己的风格。

下面是几种常用的括号位置风格

  1. K&R风格
int k_and_r ( ) {
     int a = 0, b = 0;
     while (a != 10){
           b++;
           a++;
    }
    return b;
}

优点占用空间较小,一屏可以显示更多的代码;后括号与对应的语句缩进相同,容易找到括号所终止的构造
缺点前后括号上下不对齐,视觉上不匹配;如果页面右侧的前括号丢失,不易察觉;代码语句看上去缩在一团

为了让印刷页的利用率最大化,在杂志中常使用K&R风格。

  1. 悬挂式
int  hang ( ) 
{
     int a = 0, b = 0;
     while (a != 10)
     {
           b++;
           a++;
     }
     return b;
}

优点格式清晰整洁;由于前后括号明显,利于区分代码块,易于浏览代码
缺点占用竖向空间较多;如果有很多只包含一条语句的代码块,很浪费空间

  1. 缩进的括号风格
int  indented ( ) 
     {
     int a = 0, b = 0;
     while (a != 10)
          {
           b++;
           a++;
           }
     return b;
     }

优点将代码块以及包括代码块的括号联接在一起
缺点许多人并不喜欢

  1. 其他风格
    GNU:介于悬挂式和缩进式之间的一种风格,把括号放置在各个缩进级别一半的位置上;
    Linux内核:一半是K&R,一半是悬挂式;

五、选择风格

程序员们常常在编码风格的选择上发生分歧,甚至成为了一种信仰之争,更不幸的是,这种强烈的意见分歧有时蜕变成相互的漫骂和攻击。

我们应当了解:

只要你编写代码时使用的风格是好的,具体使用哪种风格并不重要

所以我们不争论哪种风格更好,只需:

选择一种好的编码风格,并坚持使用它

六、内部风格

许多软件公司都有自己的内部编码风格,内部风格将提高代码的质量,并使软件开发更安全。具体好处如下:

建议:

如果你的团队已有一个编码标准,那么使用这个标准,
即使内部样式跟你的个人偏好相矛盾

七、设立标准

如果你被安排来草拟一份编码标准,那么祝你好运!

这项任务的难度取决于团队的成员:

下面是为这项艰巨任务提供的几条实用建议:

八、正义的战争

乔治.奥威尔(George Orwell):
要结束一场战争,最快的办法是输掉它

在编程社会中,代码版面不是唯一的烫手山芋,会引起争议的地方还有很多,如编辑器、编译器、方法论、最好的语言。

作为一名职业程序员,我们应当从这些无谓的争论中脱身。我们要有有根据的个人意见,但不能傲慢地认为自己就是对的。

上一篇 下一篇

猜你喜欢

热点阅读