常见的三种命名方法
1 驼峰命名法(CamelCase)
驼峰命名法应该我们最常见的一个,这种命名方式使用大小写混合的格式来区别各个单词,并且单词之间不使用空格隔开或者连接字符连接的命名方式
1 大驼峰命名法(UpperCamelCase)
又称帕斯卡命名法
类名需要使用大驼峰命名法(UpperCamelCase)
![](https://i-blog.csdnimg.cn/blog_migrate/80c82c7af56682f794d250a2bcea12d6.png)
2 小驼峰命名法(lowerCamelCase)
方法名、参数名、成员变量、局部变量需要使用小驼峰命名法(lowerCamelCase)。
![](https://i-blog.csdnimg.cn/blog_migrate/e91c2f267b5accef5ed48c411b60d514.png)
2 蛇形命名法(snake_case)
测试方法名、常量、枚举名称需要使用蛇形命名法(snake_case)
在蛇形命名法中,各个单词之间通过下划线“_”连接,比如should_get_200_status_code_when_request_is_valid、CLIENT_CONNECT_SERVER_FAILURE。
蛇形命名法的优势是命名所需要的单词比较多的时候,比如我把上面的命名通过小驼峰命名法给大家看一下:“shouldGet200StatusCodeWhenRequestIsValid”。
感觉如何?相比于使用蛇形命名法(snake_case)来说是不是不那么易读?
![](https://i-blog.csdnimg.cn/blog_migrate/a2cab714a562117b25cc8ec2dd3e7e21.png)
3 串式命名法(kebab-case)
在串式命名法中,各个单词之间通过连接符“-”连接,比如dubbo-registry。
建议项目文件夹名称使用串式命名法(kebab-case),比如 dubbo 项目的各个模块的命名是下面这样的。
![](https://i-blog.csdnimg.cn/blog_migrate/c69a1bf956bd19525e130789767ff2d5.png)
4 匈牙利命名法:
基本原则是:变量名=属性+类型+对象描述。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。
例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法中常用的小写字母的前缀: 前 缀 类 型 a 数组 (Array) b 布尔值 (Boolean) by 字节 (Byte) c 有符号字符 (Char) cb 无符号字符 (Char Byte,没有多少人用) cr 颜色参考值 (ColorRef) cx,cy 坐标差(长度 ShortInt) dw Double Word fn 函数 h Handle(句柄) i 整型 l 长整型 (Long Int) lp Long Pointer m_ 类的成员 n 短整型 (Short Int) np Near Pointer p Pointer s 字符串型 sz 以null做结尾的字符串型 (String with Zero End) w Word |
总结
驼峰更加紧凑,可读性这点因人而异(有人对大写不敏感的).搜索的时候记得不区分大小写,打字速度会变慢(毕竟都是不同的大写字母切shift也算挺麻烦的了),缩写需要统一规定(有人全大写,有人仅首字母)
下划线会增加尺寸,长命名会导致需要换行(可能导致可读性下降);但字母之间分割明显,可读性略好(_看起来和空格其实差不多,所以和平时读文章一样)
下划线增加了变量名字的长度。尤其我们追求变量名要有意义,通常需要几个单词拼成,下划线会让变量名更长。下划线在键盘上比较难打,而大写字母好打很多。所以写代码的效率会降一截。
不同命名方法的目的是让单词与单词之间区分开、让文件与变量更易读,因此不能只用一种格式,如只用大写或者只用小写,要让大小写单词与下划线之间混用实现更好的区分
具体按照什么格式,按照使用环境与语言特性选择