为变量取好的名字和高效编程同样重要
变量名要完全、准确地描述出该变量所代表的的事物
变量名的适宜长短和变量的作用域相关,越局部的变量,变量名越短(如循环变量)
常用对仗词:
核对表(变量命名)
命名的一般注意事项
- 名字完整并准确地表带了变量所代表的含义吗?
- 名字反映了显示世界的问题而不是编程语言方案吗?
- 名字足够长,可以让你无需苦苦思索吗?
- 如果有计算值限定符,它被放在名字的最后吗?
- 名字中用Count或者Index来代替Num了吗?
为特定类型的数据命名
- 循环下表的名字有意义吗(如果循环的长度超过了一两行代码或者出现了全套循环,那么就应该是i、j或者k以外的其他名字)?
- 所有的“”临时“”变量都重新命以更有意义的名字了吗?
- 当布尔变量的值为真时,变量名能准确表达其含义吗?
- 枚举类型的名字中含有能够表示其类别的前缀和后缀了吗?例如,把Color_用于Clolor_Red、Color_Blue了吗?
- 具名常量是根据它所代表的抽象实体而不是他说代表的数字来命名了吗?
命名规则
- 规则能够区分局部数据、类的数据和全局数据吗?
- 规则能够区分类型名、具名常量、枚举类型和变量名吗?
- 规则能够在编译器不强制检测只读参数的语言里标识出子程序中的输入参数吗?
- 规则尽可能的与语言的标准规则兼容吗?
- 名字为了可读性而加以格式化吗?
短名字
- 代码用了长名字吗(除非有必要使用短名字)?
- 是否避免只为了省一个字符而缩写名字的情况?
- 所有单词的缩写方式都一致吗?
- 名字能够读出来吗?
- 避免使用容易被看错或者读错的名字吗?
- 在缩写对照表里对短名字做出说明吗?
常见命名问题:你应该避免使用:
- 容易让人误解的名字
- 有相近含义的名字
- 只有一两个字符不同的名字
- 发音相近的名字
- 包含数字的名字
- 为了缩短而故意拼错的名字
- 英语中经常拼错的名字吗
- 与标准库子程序名或者预定义变量名冲突的名字
- 过于随意的名字
- 含有难读的字符的名字
要点
- 好的变量名是提高程序可读性的一项关键要素。对特殊种类的变量,比如循环下表和状态变量,需要加以特殊的考虑
- 名字要尽可能的具体。那些台模糊或者太通用以至于能够用于多种目的的名字通常都是很不好的
- 命名规则应该能够区分局部数据、类数据和全局数据。他们还应该可以区分类型名、具名常量、枚举类型名字和变量名。
- 无论哪种类型项目,你都应该采用某种变量命名规则。你所采用的规则的种类取决于你的程序的规模,以及项目成员的人数。
- 现代编程语言很少需要用到缩写。如果你真的要是用缩写,请使用项目缩写词典或者标准前缀来帮助理解缩写
- 代码阅读的次数远远多于编写的次数。确保你所取得名字更侧重于阅读方便而不是编写方便