11.1为什么要选择好变量名?  

如下例子所示,糟糕的变量名不利于理解代码,并且不易记,而好的变量名应该是可读的,易记的和恰如其分的

 

 

重要的命名注意事项:

1.改名字要完全的、准确地描述出该变量所代表的事物。通常对变量的描述就是最佳的变量名,如下:

 

 

2.不过事实上,有些字段如果用描述的方法来命名就会导致,它的名字太长了,长得很不实用,那么就举一些例子

 

一个好记得名字反应得通常都是问题,而不是解决方案。一个好名字通常表达得是“什么”,而不是“如何”。一般来说,

如果一个名字反应了计算的某些方面而不是问题本身,那么它反应的就是how而不是what,请避免选取这样的名字。

 


 

 

最适当的名字长度:变量名平均长度在10-16位,平均名字长度在8-20个字符之间。

 

 

那么举一些变量名太长、太短、刚好的例子来参考:

 

 

 


 

 

 变量名对作用域的影响:

短的变量名也不总是不好的!当你把一个变量名取得很短的时候,如i,这一长度本身就对该变量做出了一些说明,

也就是说,该变量代表的是一个临时的数据,它的作用域非常有限,较长的名字适用于很少用到的变量或者全局变量,

而较短的名字则适用于局部变量或者循环变量,不过较短的变量名常常会带来一些麻烦,因为,作为防御式变成策略

一些细心的程序员会避免使用短的变量名。

 

 

 


 

 

变量名中的计算值限定词:将限定词加在最后,可以突出变量赋予主要涵义的部分。但是又要注意不要让等价的

描述词是变量名产生歧义,如totalRevenue和revenueTotal。但是这条规则也有例外,那就是Num限定词的位置

已经是约定俗称的。Num放在变量名的开始位置代表一个总是,如numCustomers标识员工总数。Num放在变量名

的结束位置代表一个下表:customerNum标识当前员工的序号。通过numCustomers表示复数s也能够看出这两种

用法的区别。然而,由于这样使用Num常常会带来麻烦,因此最好的办法是避开这些问题,用Count或者Total来

表示员工的总数,用Index来指代某个特定员工。这样customerCount就是员工总数,customerIndex代表特定员工。

 

 

 


 

 

变量名中的常用对仗词:

 

 

 


 

 

11.2为特定类型的数据命名

除了通常考虑事项之外,为一些特定数据类型命名还要做一些特殊的考虑,如

循环变量,状态变量,临时变量,布尔变量,枚举变量和具名变量有关的考虑事项。

 

循环下标命名:

 

 

 

 

 

 

 

状态变量命名:

 

 

 

 

 

 

临时变量命名:临时变量用于存储计算的中间结果,作为临时占位符,以及存储内务管理值。尝尝被赋予temp、x或者其他

一些模糊且缺乏描述性的名字。通常,临时变量是一个信号,标命程序员还没有完全把问题弄清楚。而且,由于这些变量被

正式地赋予了一种”临时“状态,因此程序员会倾向于比其他变量更为随意的对待这些变量,从而增加了出错的可能性。

 

 

 

 

 

布尔变量命名,有几条原则要遵守:

1.done,用done表示某件事情已经完成。这一变量可用于表示循环结束或者一些其他的操作已完成,在事情完成之前

把done设为false,在事情完成之后把它设为true。

2.error,用error表示有错误发生。在错误发生之前把变量值设为fasle,在错误已经发生时把它设为true。

3.found,用found来表明某个值已经找到了。在还没有找到该值的时候把found设为false,一旦找到该值就把found设为

true.在一个数组中查找某个值,在我呢见中搜索某个员工ID,在一沓支票中寻找某张特定金额的支票等,都可以用found。

4.success或ok,用success或者ok来表明一项操作是否成功。在操作失败的时候把该变量设为false,在操作成功的时候把

其设置为true。如果可以,请用一个更具体的名字代替success,以便描述含义。如果完成处理就表示这个程序执行成功,

那么或许你应该用processingComplete来取而代之。如果找到某个值就是程序执行成功,那么应该换用found。

 

 

 

 

 

 

枚举类型命名 

 


 

 

11.3命名规则的力量

规则可以带来的好处

 

 

什么时候需要采用命名规则

 


 

 

11.4非正式命名规则

 

 


 

 

11.5 标准前缀

 

 

但是随着使用的进步,我们用的寓意前缀更多一些。

 


 

 

11.6 创建具备可读性的短名字

 

 

 


 

 

11.7应该避免的名字

 

 

 

 


 

 

总结表