第十一章 变量名的力量
变量名应该完全、准确地表示变量指代的事物。避免x xx xxx一类无意义变量名,避免dat tmp一类泛泛的变量名。
长度:最佳为10~16个字符,8~20个字符也可以。
变量名与作用域:
短变量名,如i tmp常常用作临时变量。有些人因为短变量名有风险,所以建议即使临时变量也不要用短变量名。无论如何,短变量名“暗示”了局部作用域。
全局变量名应该用限定词避免名字冲突,如cpp中的namespace,java中的package
计算值限定词,如min max total average应该放在最末尾。这样可以突出重点属性。
同样注意对仗词。
特定变量:
循环变量:常用i j k。但假如循环很长,i j k容易混淆,或变量离开循环后还会使用,建议取有意义的名字。
状态变量:避免flag status这样的无意义名字。
临时变量:要警惕。尽量少用temp这样的名字。
布尔值:常用名:done error found success ok…应该给布尔值取包含真/假两种状态的名字,如success,暗示了只有success和unsuccess两种状态。可以使用is开头的布尔值名字,如isFound。不要用否定意义的布尔值,如notFound。
枚举类型:名字中应该暗示枚举类型本身的名字,如名为Color的枚举类型内部命名应为Color_Red, Color_Green等。不过对于一些枚举类型的使用很像类的语言,可以省略,如应该命名为Color.Red, Color.Green而非Color.Color_Red, Color.Color_Green。
常量:应该根据常量的意义而非常量的值命名。
在共享开发、代码可读性很重要、需要经常或长周期维护的情况下,命名规则非常重要。
命名规则的正式程度应该依情况而定。
一些可供参考命名规则:
区分类与变量:
首字母大写表示类,全部小写表示变量:常用于cpp, java。缺点:差别太小;有些语言大小写不敏感,不适用于混合语言开发。
字母全部大写表示类,全部小写表示变量。缺点:cpp java中全部大写被表示常量;不适用于混合语言开发。
用t_前缀表示类型。优点:差别清晰;方法普适。缺点:不美观。
用a前缀表示变量。缺点:需要改变所有变量名,很麻烦。
对变量采用更明确的名字。
这里没有一个十全十美的方法。个人出于习惯偏爱第一种与第五种的结合。
全局变量:用g_前缀标识。 成员变量:用m_前缀标识。
疑问:很多语言中成员变量直接用.运算符调用即可,为何要特殊标识?
具名常量:用c_前缀标识。
疑问:个人以为具名常量可以用明确的名称表示,加上前缀不美观、不直接。而且通常的编译器会检查是否对具名常量进行修改,不至于产生错误操作。
枚举类型的元素:同上。
只读变量:该问题在java这样传引用的语言中尤为严重。在一些语言中可以用const保护变量,java这样的语言中可以用const前缀标识。
格式化命名:统一采用一种格式化命名法,如下划线分割(c)、驼峰命名法(java)。
与语言相关的命名规则:(在此只记录个人常用语言)
c:c ch指字符,i j指整数下标,n指数量,p指指针,s指字符串,宏定义、typedef名字全部大写,变量名、子程序名全部小写,用下划线分割。
cpp:i j指整数下标,p指指针,常量、typedef、宏定义全部大写,当且仅当全部大写时用下划线分割,类、变量采用驼峰命名法,类首字母大写,变量首字母小写。
java:java的命名风格从一开始就规定了,借鉴了一些c cpp的成功经验。i j是整数下标,常量全部大写、用下划线分割,类(与接口)、变量名同cpp、采用驼峰命名法,访问器子程序用get和set前缀。
混合语言编程时,应该使命名风格一致,即使会违背部分语言的惯例。
标签:java,变量,Color,前缀,08,笔记,命名,变量名,大全 From: https://www.cnblogs.com/qwb0614/p/17452865.html