编程命名中的 7+1 个提示
前几天 Neo 写过《编程中的命名设计那点事》,这里也有另外一篇和程序命名的文章 ,
可以从另一个角度看看。
1.- 变量应该是尽可能的望文知意。千万不要使用教材中的命名方式。
好的变量: daysDateRange, flightNumber, carColor.
坏的变量: days, dRange, temp, data, aux…
在我们的日常工作中,有很大数量的开发人员喜欢使用短的变量名,而不是有含义的变
量名。这主要是因为我们大学教科书的那些示例所造成的,人都是先入为主,所以,教科
书中的那些很抽象,带着演示的变量命名影响了我们一代又一代的程序员,并影响了他们
很多年。虽然那些短的,教材式的变量名,可能会让你少打一些字,但其实,这是非常非
常不好的。因为软件的维护成本远远大于了软件的开发成本,如果你不取一个好的一点的
变量名,那么当进行代码评审时,当进行 bug
fixing 时,当进行代码重构时,当进行代码维护时,你的某个变量名可能会让你一头雾
水,不知道所措,还可以会让你走入陷阱,造成更大的时间成本。所以,一个可阅读的代
码必然和那些不错的变量名分不开,而这也能让你的软件间接上有更好的质量。
2.- 变量名不要太长,尽可能地简短
只有简单和简短的变量名才是容易阅读的。因为你的变量名一定会用于程序语句中,所
以,为了让你的程序语句看起来的简短,你的变量名也应该短一点,不然写出来的一个表
达式就会显得很复杂。
当然,在有些时候,一个有含义的变量名和一个简短的变量名可能存在一些冲突。这相
当锻炼我们的语言能力——如果有最精炼的词语来表达最丰富的含义。如果实在做不到,
那么,取一个有含义的变量名要比取一个简短的变量名更好一些。不管怎么样,我们希望
即简短又有丰富的含义,但如果不能两全,那有含义优先级更高一些。
坏的变量:howLonDoesItTakeToOpenTheDoor, howBigIsTheMaterial…
好的变量:timeToOpenTheDoor, MaterialSize.
3.- 可以使用缩写,但需要有一些注释
有一些时候,我们需要使用一些缩写来命名变量,比如:用 usr 来表示 user,用 gp 来表
示 group,用 conf 来表示 configuration,用 cwd 来表示 current
working directory,用 ptr 来代码 point to
reference,等等,等等。缩写一般要用在大家可以看得懂的,而不是为了缩写而缩短一
个单词,当然,如果你把缩写后的变量名加上注释,那就更加稳妥了。关于一些约定俗成
的缩写,可参看本文的附录一。
4.- 使用合适的匈牙利命名规则
这里有一篇非常不错的英文文章告诉你 《什么是合适的匈牙利命名
》,这篇文章同时还告诉你如何去用他。基本上来说,匈牙利命名法主要是为变量加上
某种前缀以标识这个变量的类型,或是一种方法的功能。其基本原则是:变量名=属性+
类型+对象描述。
比如:在描述类型方面:指针 p,函数 fn,长整型 l,布尔 b,浮点型(有时也指文
件)f,双字 dw,字符串 sz,短整型 n,双精度浮点 d,无符号
u……等等。关于更多的命名规范,请参见附录二。
注意,匈牙利命名也是有不好的地方的,比如你要把一个整形改成一个浮点型,你除了
要改变这个变量的类型,你还要改变这个变量的名字。这是相当麻烦的。而且,在某些时
候,这种前缀式的命名可以反而让你不知所措。另外,在 C++中,有了类以后,这种命名
评论0
最新资源