原文:http://www.cnblogs.com/ggjucheng/archive/2011/12/15/2289291.html
如果想要有效的管理一個稍微復雜一點的體系,針對其中事物的一套統一、帶層次結構、清晰明了的命名准則就是必不可少而且非常好用的工具。
活躍在生物學、化學、軍隊、監獄、黑社會、恐怖組織等各個領域內的大量有識先輩們都曾經無數次地以實際行動證明了以上公理的正確性。除了上帝(設它可以改變世間萬物的秩序)以外,相信沒人有實力對它不屑一顧。
在軟件開發這一高度抽象而且十分復雜的活動中,命名規則的重要性更顯得尤為突出。一套定義良好並且完整的、在整個項目中統一使用的命名規范將大大提升源代碼的可讀性和軟件的可維護性。
在引入細節之前,先說明一下命名規范的整體原則:
同一性 |
在編寫一個子模塊或派生類的時候,要遵循其基類或整體模塊的命名風格,保持命名風格在整個模塊中的同一性。 |
標識符組成 |
標識符采用英文單詞或其組合,應當直觀且可以拼讀,可望文知意,用詞應當准確。 |
最小化長度 && 最大化信息量原則 |
在保持一個標識符意思明確的同時,應當盡量縮短其長度。 |
避免過於相似 |
不要出現僅靠大小寫區分的相似的標識符,例如“i”與“I”,“function”與“Function”等等。 |
避免在不同級別的作用域中重名 |
程序中不要出現名字完全相同的局部變量和全局變量,盡管兩者的作用域不同而不會發生語法錯誤,但容易使人誤解。 |
正確命名具有互斥意義的標識符 |
用正確的反義詞組命名具有互斥意義的標識符,如:"nMinValue"和"nMaxValue","GetName()" 和 "SetName()" .... |
避免名字中出現數字編號 |
盡量避免名字中出現數字編號,如Value1,Value2等,除非邏輯上的確需要編號。這是為了防止程序員偷懶,不肯為命名動腦筋而導致產生無意義的名字(因為用數字編號最省事)。 |
類/結構
除了異常類等個別情況(不希望用戶把該類看作一個普通的、正常的類之情況)外,C++類/結構
不同於C++類的概念,傳統的C結構體只是一種將一組數據捆綁在一起的方式。傳統C結構體的命名規則為:
|
函數
|
變量
變量應該是程序中使用最多的標識符了,變量的命名規范可能是一套C++命名准則中最重要的部分:
|
常量
C++中引入了對常量的支持,常量的命名規則如下:
|
枚舉、聯合、typedef
枚舉、聯合及typedef語句都是定義新類型的簡單手段,它們的命名規則為:
|
宏、枚舉值
|