zoukankan      html  css  js  c++  java
  • 规范命名:变量名的力量

    变量名的力量

    命名对于编写程序来说尤为重要,也许我们喜欢偷工减料使用一些很短的变量名,如下标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++中变量使用驼峰形式,即变量的第一个字母小写,后面每个单词的首字母大写,不要使用下划线作为名字中的分割符,除非是全部大写的常量
  • 相关阅读:
    基于注解的mybatis(转)
    git分支删除
    java多线程同步(转)
    hadoop学习笔记(五):java api 操作hdfs
    java常用设计模式一:单例模式
    mysql CONCAT用法
    mysql date_sub用法
    hadoop学习笔记(四):hdfs常用命令
    try-catch+thows异常范围说明
    Python 类的多态
  • 原文地址:https://www.cnblogs.com/jolin123/p/4423410.html
Copyright © 2011-2022 走看看