在做了几次项目之后,发现自己写完项目后,过一段时间,再之前的项目,就不想改代码了。自己发现写项目没有规范,变量过一段时间就不知道什么意思了,才发现变量的命名还是很重要的😭
下面是我今天在《代码大全2》上总结摘抄的
1. 在声明时初始化每个变量
2. 常见的计数器和累加器 i,j,k,sum,total,cnt
3. 变量没初始化,有些编译器会警告
4. 检查输入参数的合法性
5. 尽量缩短变量的"存活"时间
存活时间就是变量第一次和最后一次出现的代码行差。
第一个好处:减少一个变量在连续两次出现的中间的出错概率
第二个好处:更清楚变量做了什么逻辑处理,如果出错能更快的发现。
较短的存活时间代码可读性更强
6. 把相关语句放到一起
7. 变量作用域尽量缩到最小
可以减小变量出错的范围
8. 每个变量只有一个用途
9. 变量名称要足够充分而准确地描述变量所代表的作用
尽量达到看变量名,就知道变量是做什么的
10. 变量名称的最优长度在10~16个字符
11. 变量名称中的计算值限定符放在最后
限定符:Total,Sum,Average,Max,Min,Record,String,Pointer等。
如revenueTotal,expenseTotal,revenueAverage这样的名称具有令人愉悦的对称性。
12. 变量名称中常见的对仗词
begin/end first/end
locked/unlocked min/max
next/previous old/new
opened/closed visible/invisibleinvisible
source/target source/destination
up/down
13. 循环变量
循环逻辑短用i,j,k,如果循环逻辑太长,需要把i,j,k换成较长的名称来增强它的可读性
14. 状态变量
把一些如1,2,4这些常量,设置成使用该用途名的常量,如visitType=1,访问时用visitType
注意:一旦发现自己在"揣摩"变量的含义,请务必重新命名变量
15. 临时变量
常用命名:tmp,x或者一些模糊的,缺乏描述性的命名。较短的存活时间时,可以用tmp这些,如果存活时间长点了就得改成处理逻辑的名称
16. 布尔变量
error,done,found,success/ok
17. 枚举变量
可以使用组前缀(如Color_,Planet_或者Month_)来确保该类型的成员属于同一个组
18. 常量变量
根据常量所代表的抽象实体来进行命名,常量全部大写