规范命名:变量名的力量

变量名的力量

命名对于编写程序来说尤为重要,也许我们喜欢偷工减料使用一些很短的变量名,如下标i,j等,或者temp临时变量,但到头来我们还是要为这些许的偷懒付出沉重的代价,往往在调试自己刚刚写好的代码时就已经不知道刚才自己的意图。更何况每个程序都不可能只是给自己阅读的。下面是我在阅读《code complete》时的一些体会

使用what而不是how

一个好的名字本身应该清楚的描述对象本身,而不是反映某些方面,如一条员工数据记录的命名,employeeData就要比inputRec来的好,后者只是说明这是输入的数据

适合的长度

变量名的平均长度一般在10-16个字符会比较容易阅读

计算值限定词

我们经常需要表示计算的结果,用到如total, sum, average, max, min, record, string, pointer的限定词来修饰变量名,则最好将这些限定词统一放到名字的最后,如revenueTotal, recordSum等。这里有一个例外,就是限定词num,num放在前面时表示对象的计数,如numCustomers。而num放到最后时则表示一种下标,如studentNum等,可以用studentIndex来代替

为循环下标命名

通常我们在循环中使用i,j,k的下标是约定俗成的,使用这种下标,说明我们的下标变量作用域应该很小,或者这个下表仅仅是用来控制循环条件而没有任何其他作用,而且最好只有一层循环,这样才容易看出代码的意思
当有两层循环以上的时候,最好还是用描述性的名字,否则在循环里很容易就弄乱i,j,k它们分别代表什么了,如:

for (teamIndex = 0; ...; teamIndex++){
    for (eventIndex = 0; ...; eventIndex++){
        ...
    }
}

为状态变量命名

不要使用flag这些名字,直接描述状态即可,如

if( dataReady)
    ...
if( reportType == ReportType_Annual)
    ...

为临时变量命名

我们经常使用temp, x, y等临时变量,虽然这些变量只是“临时”的,但是给它们一个恰如其分的名字会是一个更好的选择,因为我们无法保证自己不会心血来潮的将一些临时变量在后面继续使用

为枚举类型命名

枚举类型可以在每一组变量前统一加上一个组前缀,如:Color_, Planet_

Public Enum Planet
    Planet_Earth
    Planet_Mars
    Planet_Venus

非正式的规则

  • 类型的首字母大写,变量的首字母小写
  • 可以在全局变量前加上g_标识,在成员变量前加上m_标识
  • C++中变量使用驼峰形式,即变量的第一个字母小写,后面每个单词的首字母大写,不要使用下划线作为名字中的分割符,除非是全部大写的常量
posted @ 2015-04-13 21:56  Jolin123  阅读(263)  评论(0编辑  收藏  举报