命名規(guī)則具有一定隨意性, 但相比按個(gè)人喜好命名, 一致性更重, 所以不管你怎么想, 規(guī)則總歸是規(guī)則
1 通用命名規(guī)則
函數(shù)拘哨,變量,文件命名要有描述性,少用縮寫 盡可能給出有描述性的命名力惯,別心疼空間碗誉,讓代碼易于理解更加重要 不要用只有項(xiàng)目開發(fā)者才能理解的縮寫 不要通過(guò)省略幾個(gè)字母來(lái)縮寫單詞
警示實(shí)例:
int n; //不知所名召嘶,莫名其妙 int nerr; //奇怪的縮寫 int n_comp_conns; //奇怪的縮寫 int wgc_connections; //只有開發(fā)者才明白的縮寫 int pc_reader; //pc可以有很多種解釋 int cstmr_id; //刪減了字母
2 文件命名
文件名稱要全部小寫父晶, 可以包含下劃線或者連字符,按照項(xiàng)目的約定選擇弄跌,最好選擇下劃線 通常盡量讓文件名更加明確 內(nèi)聯(lián)函數(shù)必須放在.h 文件中甲喝,如果內(nèi)聯(lián)函數(shù)比較短,可以直接放在.h中
3 類型命名
類型名稱的每個(gè)單詞首字母都使用大寫铛只,不包含下劃線 所有的類型命名埠胖,類\結(jié)構(gòu)體\類型定義\枚舉使用相同的約定
類型命名實(shí)例:
class UrlTable {... class UrlTableTester { ... struct UrlTableTester { ... typedef hash_map<UrlTableProperties * ,string> PropertiesMap; enum UrlTableErrors { ...
4 變量命名
變量名一律小寫 單詞之間使用下劃線連接 類的成員變量以下劃線結(jié)尾,結(jié)構(gòu)體不需要 對(duì)全局變量沒(méi)有特別要求淳玩,但是少用為好直撤,可以使用g_或者其他標(biāo)志作為前綴,更好的區(qū)分局部變量
變量命名實(shí)例:
string table_name ; string tablename;
5 常量命名
在全局或者類里面的常量名稱之前加k 除去開頭的k之外的每個(gè)單詞開頭字母均使用大寫
常量命名實(shí)例:
const int kDaysInAWeek = 7;
6 函數(shù)命名
常規(guī)函數(shù)使用大小寫混合蜕着,每個(gè)單詞的首字母大寫谋竖,沒(méi)有下劃線 取值和設(shè)值函數(shù)則要求與變量名匹配 其他非常短小的內(nèi)聯(lián)函數(shù)名可以用小寫字母,例如承匣,如果在循環(huán)中調(diào)用這樣的函數(shù)甚至都不用緩存其返回值蓖乘,小寫命名可以接受
常量命名實(shí)例:
常規(guī)函數(shù) AddTableEntry() DeleteUrl() 如果函數(shù)出錯(cuò)的時(shí)候直接崩潰,可以在函數(shù)名加上OrDie,但函數(shù)本身必須集成在產(chǎn)品代碼中韧骗,OpenFileDie()
7 名字空間命名
名字空間用小寫字母命名嘉抒,基于項(xiàng)目名稱和目錄結(jié)構(gòu)
常量命名實(shí)例:
常規(guī)函數(shù) AddTableEntry() DeleteUrl() 如果函數(shù)出錯(cuò)的時(shí)候直接崩潰,可以在函數(shù)名加上OrDie,但函數(shù)本身必須集成在產(chǎn)品代碼中袍暴,OpenFileDie()