《代码大全》中的变量

简介: 《代码大全》中的变量

 一、选择好变量名的注意事项


1)命名注意事项

为变量命名时最重要的考虑事项是:该名字要完全、准确地描述出该变量所代码的事物。这种名字要很容易阅读,因为其中不包含晦涩的缩写,同时也没有歧义。下表给出了更多变量名称的例子,其中有好的也有差的。

81.png

2)以问题为导向

一个好记的名字反映的通常都是问题,而不是解决方案,表达是是what(什么)而不是how(如何),例如员工数据记录可以是inputRec或employeeData。在财务软件里,calcVal的计算痕迹要比sum更明显。

3)最适当的名字长度

当变量名的平均长度在10到16个字符的时候,调试程序所花费的力气是最小的。

82.png

4)变量名对作用域的影响

短的变量名会带来一些麻烦。对于全局命名空间中的名字加以限定词,例如用namespace关键字划分全局命名空间。

5)变量名中的计算值限定词

计算结果的变量:总额、平均值、最大值等。如果要用类似于Total、Sum、Average、Max、Min、Record、String、Pointer这样的限定词来修改某个名字,那么请把限定词加到名字的最后,可提高可读性,简化维护工作。

6)变量名中的常用对仗词

通过应用命名规则来提高对仗词使用的一致性,从而提高其可读性。下面是一些常用的对仗词:

83.png

 二、为特定类型的数据命名


1)为循环下标命名

i、j和k是约定俗成的。如果一个变量要在循环之外使用,那么就需要一个更有意义的名字,类似于recordCount、teamIndex等。

2)为状态变量命名

为状态变量取一个比flag更好的名字,例如characterType = CONTROL_CHARACTER。

3)为临时变量命名

临时变量常被赋予temp、x或者其他一些模糊且缺乏描述性的名字。临时变量是一个信号,表明程序员还没有完全把问题弄清楚,程序员会倾向于比其他变量更为随意地对待这些变量,从而增加了出错的可能。

4)为布尔变量命名

谨记典型的布尔变量名:done、error、found、success或ok。给布尔变量赋予隐含“真/假”含义的名字。变量名加前缀“is”的优点是不能用于那些模糊不清的名字:isStatus,缺点是降低了简单逻辑表达式的可读性,isFound的可读性要略差于found。

5)为枚举类型命名

通过使用组前缀,如Color_、Planet_或者Month_来明确表示该类型的成员都同属于一个组。

6)为常量命名

根据常量所表示的含义,而不是该常量所具有的数组为该抽象事物命名。

 三、标准前缀


1)用户自定义类型缩写

UDT缩写可以标识被命名对象或变量的数据类型,表示像窗体、屏幕区域以及字体一类的实体,通常不会表示任何由编程语言所提供的预制数据类型。

84.png

2)语义前缀

语义前缀比UDT更进一步,描述了变量或者对象是如何使用的。根据项目的不同而不同。

85.png

3)标准前缀的优点

标准前缀能够更精确地描述一些含义比较模糊的名字,例如min和max、first和last,并且使名字更加紧凑,例如可以用cpa而不是totalParagraphs表示段落总数,可以用ipa表示一个段落数组的下标,而不是用indexParagraphs或者paragraphsIndex。

  四、创建具备可读性的短名字


1)缩写的一般指导原则

其中的一些原则彼此冲突,所以不要试图同时应用所有的原则。

86.png

2)有关缩写的评论

1. 不要用从每个单子中删除一个字符的方式来缩写。

2. 缩写要一致,要么全用Num,要么全用No。

3. 创建你能读出来的名字,用xPos而不用xPstn,用needsCompu而不用ndsCmptg。

4. 避免使用容易看错或读错的字符组合,为了表示b的结尾,endb要比bend更好。

5. 使用辞典来解决命名冲突,创建简短名字会带来一项麻烦就是命名冲突,用dismissed代替fired,3个字母的缩写变为dsm。

6. 在代码里用缩写对照表解释极短的名字的含义。

7. 在一份项目级的“标准缩写”文档中说明所有的缩写。

8. 名字对于代码读者的意义要比对作者更重要。

 五、应该避免的名字


1. 避免使用令人误解的名字或缩写。

2. 避免使用具有相似含义的名字,例如input和inputValue在语义上非常相似。

3. 避免使用具有不同含义但却有相似名字的变量,例如clientRecs和clientReps这样的名字。

4. 避免使用发音相近的名字,例如wrap和rap。

5. 避免在名字中使用数字,例如file1和file2,如果数字很重要,那么用数组来代替一组单个的变量。

6. 避免在名字中拼错单词,例如把highlight错拼为hilite。

7. 避免使用英语中常常拼错的单词,例如absense、acummulate、calender等这些拼错的单词。

8. 不要紧靠大小写来区分变量名。

9. 避免使用多种自然语言,如果一个项目在多个说英语的国家进行,就应该以其中一种英语版本为标准。

10. 不要使用与变量含义完全无关的名字。

11. 避免在名字中包含易混淆的字符,例如数字1和字母l。

 

相关文章
|
4月前
|
存储 开发者 Python
探索代码的奥秘:从变量到函数的编程之旅
【8月更文挑战第31天】本文将带你走进编程的世界,从基础的变量概念出发,逐步深入到复杂的函数设计。我们将通过实际的代码示例,探讨如何高效地组织和复用代码,以及在面对复杂问题时如何应用模块化思维来简化解决方案。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和启发,帮助你更好地理解编程语言的内在逻辑和美学。
|
7月前
|
存储 人工智能 编译器
【重学C++】【指针】一文看透:指针中容易混淆的四个概念、算数运算以及使用场景中容易忽视的细节
【重学C++】【指针】一文看透:指针中容易混淆的四个概念、算数运算以及使用场景中容易忽视的细节
111 1
|
前端开发 程序员 PHP
程序员还在为变量取名苦恼,那是因为你不知道,这个变量命名神器
程序员还在为变量取名苦恼,那是因为你不知道,这个变量命名神器
200 0
|
安全 编译器 C语言
【C语言】刨根问底 - 深剖const关键字
【C语言】刨根问底 - 深剖const关键字
94 0
【C语言】刨根问底 - 深剖const关键字
|
存储 前端开发
带你读书之“红宝书”:第五章 基本引用类型④
带你读书之“红宝书”:第五章 基本引用类型④
89 0
带你读书之“红宝书”:第五章 基本引用类型④
|
安全 前端开发
带你读书之“红宝书”:第五章 基本引用类型⑤
带你读书之“红宝书”:第五章 基本引用类型⑤
83 0
带你读书之“红宝书”:第五章 基本引用类型⑤
|
前端开发
带你读书之“红宝书”:第五章 基本引用类型②
带你读书之“红宝书”:第五章 基本引用类型②
65 0
带你读书之“红宝书”:第五章 基本引用类型②
|
前端开发
带你读书之“红宝书”:第五章 基本引用类型③
带你读书之“红宝书”:第五章 基本引用类型③
90 0
带你读书之“红宝书”:第五章 基本引用类型③
|
前端开发 索引
带你读书之“红宝书”:第五章 基本引用类型⑦
带你读书之“红宝书”:第五章 基本引用类型⑦
84 0
带你读书之“红宝书”:第五章 基本引用类型⑦
编程基本功:变量局部化的教训
编程基本功:变量局部化的教训
75 0