变量命名规范
本节内容主要参考自代码大全(第二版)
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
,某项操作成功,最好能更具体的表示是什么操作
- 布尔变量的名称应当只有
true
和false
的含义,如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
缩写为deg
,delete
为del
- 去掉非前置元音
- 去掉虚词
- 统一的在第n个字母后阶段,如
xPox
,yPos
中的Pos表示都是Position
5、应该避免的名字
- 不要使用中文拼音甚至是拼音缩写
- 避免使用令人误解的名字或者缩写
- 避免使用具有相似含义的名字,如
fileNum
和fileIndex
- 避免使用拼写相似的名字
- 避免在名字中使用数字,一般都可以转化为数组或者容器
- 避免使用大小写区分变量
- 避免使用易混淆的字符,如字母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
,某项操作成功,最好能更具体的表示是什么操作
- 布尔变量的名称应当只有
true
和false
的含义,如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
缩写为deg
,delete
为del
- 去掉非前置元音
- 去掉虚词
- 统一的在第n个字母后阶段,如
xPox
,yPos
中的Pos表示都是Position
5、应该避免的名字
- 不要使用中文拼音甚至是拼音缩写
- 避免使用令人误解的名字或者缩写
- 避免使用具有相似含义的名字,如
fileNum
和fileIndex
- 避免使用拼写相似的名字
- 避免在名字中使用数字,一般都可以转化为数组或者容器
- 避免使用大小写区分变量
- 避免使用易混淆的字符,如字母O/o和数字0,字母l和数字1,字母I和数字1
总结
- 变量命名最重要是就是要能体现其具体的意义
- 变量名要方便阅读,不能太长也不能太短
- 要形成自己的编码风格,一眼看过去就知道该名字代表是什么数据类型
- 作为中国人,最经常犯的错误就是使用拼音及其缩写命名。笔者曾见过有人用
MBPos
表示面板位置,用T6
表示机械臂第6个关节的坐标矩阵,看起来非常的吃力,包括他自己都经常忘记这些变量的具体含义