变量命名
1. 选择好名称的威力
重要的命名注意事项
变量名称足够充分准确的表述变量所代表的实体:用文字来表达变量代表的实体
numberOfPeopleOnTheUsOlympicTeam
以问题为导向
好的名称倾向于表达“what”,而不是“how”。名称要能够用来指代 问题本身
名称最优长度
最优长度应该介于 x
和 numberOfPeopleOnTheUsOlympicTeam
之间。
应该努力把变量名称长度控制在 9 ~ 15 个字符
作用域对变量名称的影响
- 如果是很少使用的变量或全局变量,名称最好长一点
- 如果是局变量或循环变量,名称最好短一点
对全局命名空间中的命名使用限定符:
C++ 和 C# 可以用 namespace 关键字划分全局命名空间
把全局命名空间的命名冲突风险降到最低
变量名称中的计算值限定符
对于类似 Total 、 Average 、 Max 、 Min 、 Record 、 String 、 Pointer 这样的限定符来修改某个名称,把这样的限定符放到最后
常见的对仗词
- begin / end
- first / last
- locked / unlocked
- next / previous
- old / new
- opened / closed
- visible / invisible
- source / target
- source / destination
- up / down
2. 特定数据类型的命名
循环索引
i 、 j 、 k 是惯用的名称
如果一个名称在循环之外使用,应该使用更有意义的名称
嵌套循环中应该使用较长的名称,增强可读性,避免索引串扰
状态变量
为状态变量取一个比 Flag 更好的名称,最好把 Flag 看作状态变量
标记的名称不应该含有 Flag
临时变量
临时变量是程序员还没有完全理解问题的一个标志,警惕使用不提供信息的临时变量
使用真正的变量名称来替代临时变量名
布尔变量
- done
- error
- found
- success / ok
上诉隐含真或假的关键字应该放在命名名称结尾
枚举类型
使用前缀(如 Color_ 、 Planet_ )来确保该类型的成员都属于同一个组
枚举成员总是以枚举名为前缀