变量命令规则

变量命名规范


本节内容主要参考自代码大全(第二版)

1、变量命名的注意事项

  • 变量命名最关键的一点就是:名字要能准确的描述出该变量所代表的事物
  • 变量名长度最好控制在10~16个字符之间
  • 对位于全局命名空间中的名字加以限定词,并且应该一般加在后面
    • 常见的限定词:Total, Sum, Average, Max, Min, Record, String, Pointer
    • Num比较特殊,加在前面表示总数,加在后面表示下标。不过为了避免混淆,总数最好用Total/Count来表示,下标用Index来表示
  • 准确使用对称词,如first/last

举一些例子:

变量用途 变量名称 备注
支票累计额 checkTotal
列车速度 velocity
每页行数 linesPerPage
员工序号 customerIndex 优于customerNum
员工总数 customerTotal 优于numCustomers(复数)

2、特定类型的数据命名

2.1循环下标命名

  • 循环内常用 i, j, k做下标,且仅用于此处
  • 如果一个变量要在循环之外使用,要以具体的意义去命名,比如统计读取记录的数量,应当使用recordCount
  • 嵌套循环最好以实际意义来命名下标,如扫描矩阵用row, column

2.2状态变量命名

  • 不要使用flag,应当明确指出具体状态,如用dataReady表示数据已经准备好了
  • 当一个状态变量表示多个状态时,有时需要进行操作,有时候也需要进行比较,结合枚举类型或者预定义常量来使用,如characterType & PRINTABLE_CHAR

2.3临时变量命名

  • 尽量使用的“临时变量”的具体意义命名,而不是使用temp,要清楚该变量所代表数据的实际用途

2.4布尔变量命名

  • 记住典型的布尔变量名
    • done,某事已完成
    • error,错误有发生
    • found,某值已找到
    • success/ok,某项操作成功,最好能更具体的表示是什么操作
  • 布尔变量的名称应当只有truefalse的含义,如sex就比male差很多
  • 使用肯定意义的布尔变量名,如notFound就比found差很多

2.5枚举类型命名

  • 使用前缀,其一般为枚举类型名称
enum Color
{
    Color_Red,
    Color_Green,
    Color_Blue
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.6常量命名

  • 全部大写+下划线
  • 使用常量的意义命名,而不是数值
  • 推荐使用const定义常量,而不是#define

3、非正式命名规则

  • 此处列出C++和Java命名规则的部分示例,这些都是笔者用起来非常舒服规则
实体 描述
localVariable 局部变量,首字母小写,其余单词首字母大写
g_globalVariable 全局变量,使用g_前缀
funtion_name 函数/方法,全部小写,单词之间用下划线隔开
TypeName 类型定义,Camel写法,包括枚举和typedef,枚举总是复数形式
Base_Enum 枚举类型元素,加上单数枚举类型前缀,Color_Red
ClassName 类名,Camel写法,每个单词首字母大写,其余字母小写
m_classVariable 类成员变量,使用前缀m_
CONSTANT 常量,全部大写 + 下划线
MACRO 常量,全部大写 + 下划线

4、缩写规则

  • 有标准缩写的要使用标准缩写,如degree缩写为degdeletedel
  • 去掉非前置元音
  • 去掉虚词
  • 统一的在第n个字母后阶段,如xPoxyPos中的Pos表示都是Position

5、应该避免的名字

  • 不要使用中文拼音甚至是拼音缩写
  • 避免使用令人误解的名字或者缩写
  • 避免使用具有相似含义的名字,如fileNumfileIndex
  • 避免使用拼写相似的名字
  • 避免在名字中使用数字,一般都可以转化为数组或者容器
  • 避免使用大小写区分变量
  • 避免使用易混淆的字符,如字母O/o和数字0,字母l和数字1,字母I和数字1

总结

  • 变量命名最重要是就是要能体现其具体的意义
  • 变量名要方便阅读,不能太长也不能太短
  • 要形成自己的编码风格,一眼看过去就知道该名字代表是什么数据类型
  • 作为中国人,最经常犯的错误就是使用拼音及其缩写命名。笔者曾见过有人用MBPos表示面板位置,用T6表示机械臂第6个关节的坐标矩阵,看起来非常的吃力,包括他自己都经常忘记这些变量的具体含义

变量命名规范


本节内容主要参考自代码大全(第二版)

1、变量命名的注意事项

  • 变量命名最关键的一点就是:名字要能准确的描述出该变量所代表的事物
  • 变量名长度最好控制在10~16个字符之间
  • 对位于全局命名空间中的名字加以限定词,并且应该一般加在后面
    • 常见的限定词:Total, Sum, Average, Max, Min, Record, String, Pointer
    • Num比较特殊,加在前面表示总数,加在后面表示下标。不过为了避免混淆,总数最好用Total/Count来表示,下标用Index来表示
  • 准确使用对称词,如first/last

举一些例子:

变量用途 变量名称 备注
支票累计额 checkTotal
列车速度 velocity
每页行数 linesPerPage
员工序号 customerIndex 优于customerNum
员工总数 customerTotal 优于numCustomers(复数)

2、特定类型的数据命名

2.1循环下标命名

  • 循环内常用 i, j, k做下标,且仅用于此处
  • 如果一个变量要在循环之外使用,要以具体的意义去命名,比如统计读取记录的数量,应当使用recordCount
  • 嵌套循环最好以实际意义来命名下标,如扫描矩阵用row, column

2.2状态变量命名

  • 不要使用flag,应当明确指出具体状态,如用dataReady表示数据已经准备好了
  • 当一个状态变量表示多个状态时,有时需要进行操作,有时候也需要进行比较,结合枚举类型或者预定义常量来使用,如characterType & PRINTABLE_CHAR

2.3临时变量命名

  • 尽量使用的“临时变量”的具体意义命名,而不是使用temp,要清楚该变量所代表数据的实际用途

2.4布尔变量命名

  • 记住典型的布尔变量名
    • done,某事已完成
    • error,错误有发生
    • found,某值已找到
    • success/ok,某项操作成功,最好能更具体的表示是什么操作
  • 布尔变量的名称应当只有truefalse的含义,如sex就比male差很多
  • 使用肯定意义的布尔变量名,如notFound就比found差很多

2.5枚举类型命名

  • 使用前缀,其一般为枚举类型名称
enum Color
{
    Color_Red,
    Color_Green,
    Color_Blue
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.6常量命名

  • 全部大写+下划线
  • 使用常量的意义命名,而不是数值
  • 推荐使用const定义常量,而不是#define

3、非正式命名规则

  • 此处列出C++和Java命名规则的部分示例,这些都是笔者用起来非常舒服规则
实体 描述
localVariable 局部变量,首字母小写,其余单词首字母大写
g_globalVariable 全局变量,使用g_前缀
funtion_name 函数/方法,全部小写,单词之间用下划线隔开
TypeName 类型定义,Camel写法,包括枚举和typedef,枚举总是复数形式
Base_Enum 枚举类型元素,加上单数枚举类型前缀,Color_Red
ClassName 类名,Camel写法,每个单词首字母大写,其余字母小写
m_classVariable 类成员变量,使用前缀m_
CONSTANT 常量,全部大写 + 下划线
MACRO 常量,全部大写 + 下划线

4、缩写规则

  • 有标准缩写的要使用标准缩写,如degree缩写为degdeletedel
  • 去掉非前置元音
  • 去掉虚词
  • 统一的在第n个字母后阶段,如xPoxyPos中的Pos表示都是Position

5、应该避免的名字

  • 不要使用中文拼音甚至是拼音缩写
  • 避免使用令人误解的名字或者缩写
  • 避免使用具有相似含义的名字,如fileNumfileIndex
  • 避免使用拼写相似的名字
  • 避免在名字中使用数字,一般都可以转化为数组或者容器
  • 避免使用大小写区分变量
  • 避免使用易混淆的字符,如字母O/o和数字0,字母l和数字1,字母I和数字1

总结

  • 变量命名最重要是就是要能体现其具体的意义
  • 变量名要方便阅读,不能太长也不能太短
  • 要形成自己的编码风格,一眼看过去就知道该名字代表是什么数据类型
  • 作为中国人,最经常犯的错误就是使用拼音及其缩写命名。笔者曾见过有人用MBPos表示面板位置,用T6表示机械臂第6个关节的坐标矩阵,看起来非常的吃力,包括他自己都经常忘记这些变量的具体含义

猜你喜欢

转载自blog.csdn.net/zhangzheng_1986/article/details/78470161
今日推荐