编码规范 - 常用编码命名规则
驼峰命名法
最常见的一个命名法,命名方式使用大小写混合的格式来区别各个单词,并且单词之间不使用空格隔开或者连接字符连接的命名方式。
大驼峰命名法(CamelCase)
通常类名需要使用大驼峰命名法
//正例:
ServiceDiscovery、ServiceInstance、LruCacheFactory
//反例:
serviceDiscovery、Serviceinstance、LRUCacheFactory
1
2
3
4
2
3
4
小驼峰命名法(lowerCamelCase)
通常函数方法名、参数名、成员变量、局部变量需要使用小驼峰命名法
//正例:
getUserInfo()、createCustomThreadPool()、setNameFormat(String nameFormat)
Uservice userService;
//反例:
GetUserInfo()、CreateCustomThreadPool()、setNameFormat(String NameFormat)
Uservice user_service
1
2
3
4
5
6
7
2
3
4
5
6
7
蛇形命名法(snake_case)
通常测试方法名、常量、枚举名称需要使用蛇形命名法。
在蛇形命名法中,各个单词之间通过下划线“_”连接,比如
should_get_200_status_code_when_request_is_valid、CLIENT_CONNECT_SERVER_FAILURE
蛇形命名法的优势是命名所需要的单词比较多的时候,比上面通过小驼峰命名法得到的名称易读:
shouldGet200StatusCodoWhenRequestIsValid
//正例:
@Test
void should_get_200_status_code_when_request_is_valid() {
......
}
//反例:
@Test
void shouldGet200StatusCodoWhenRequestIsValid() {
......
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
串式命名法(kebab-case)
在串式命名法中,各个单词之间通过下划线“-”连接
建议项目文件夹名称使用串式命名法
在Vue中,定义组件名
kebab-case(短横线命名)
Vue.component('my-component-name', { /* ... */ })
使用 大驼峰命令(CamelCase)
Vue.component('MyComponentName', { /* ... */ })
匈牙利命名法(Hungarian)
hwnd:h 是类型描述,表示句柄, wnd 是变量对象描述,表示窗口,所以 hwnd 表示窗口句柄。 pfnEatApple:pfn 是类型描述,表示指向函数的指针, EatApple 是变量对象描述,所以它表示指向 EatApple 函数的函数指针变量。 g_cch:g_ 是属性描述,表示全局变量,c 和 ch 分别是计数类型和字符类型,一起表示变量类型,这里忽略了对象描述,所以它表示一个对字符进行计数的全局变量。
匈牙利命名法基本原则:变量名=属性+类型+对象描述
- 全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount
- 静态变量用s_开头,如一个静态的指针变量定义为s_plPerv_Inst
- 成员变量用m_开头,如一个长型成员变量定义为m_lCount
- 局部变量用l_开头,如一个整型局部变量定义为l_inum
属性部分:
g_ 全局变量
c_ 常量
m_ c++类成员变量
s_ 静态变量
类型部分:
数组 a
指针 p
函数 fn
无效 v
句柄 h
长整型 l
布尔 b
浮点型(有时也指文件) f
双字 dw
字符串 sz
短整型 n
双精度浮点 d
计数 c(通常用cnt)
字符 ch(通常用c)
整型 i(通常用n)
字节 by
字 w
实型 r
无符号 u
描述部分:
最大 Max
最小 Min
初始化 Init
临时变量 T(或Temp)
源对象 Src
目的对象 Dest
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32