單詞的選擇
對框架中標識符的名字來說,達到一目了然的效果很重要。標識符的名字應該能夠清楚的表達每個成員是做什么,以及每個類型和參數代表什么。名字應該和應用場景、系統的邏輯組成或物理組成以及為人熟知的概念相對應,而不應該與技術或架構相對應。
要為標識符選擇易于閱讀的名字。
要更看重可讀性,而不是簡潔性。以前的編程語言標識符命名之所以簡單,是因為那時候的PC內存和磁盤的空間都很小,大家不得不盡量的壓縮,對于現在的PC,大家就沒必要糾結這個問題了,所以相對于簡潔性,可讀性更重要。
不要使用下劃線、連字符以及其他任何既非字母數字的字符。對于私有字段,我還是比較喜歡在標識符前加個下劃線前綴。
不要使用匈牙利命名法(基本原則:變量名=屬性+類型+對象描述)。在C和C++中這個命名方式比較常見。
避免使用與廣泛使用的編程語言的關鍵字有沖突的標識符。雖然在C#中可以通過添加“@”前綴的方式將關鍵字作為標識符來使用,但在使用方法時,用轉義序列要比不轉義序列麻煩得多。在 Asp.Net MVC開發模式Razor 語法中,行內表達式(變量和函數)都是以“@”開頭的。所以不建議用這個加“@”符號的命名方式。
使用單詞縮寫詞和首字母縮寫詞
不要使用未被廣泛接受的縮寫詞和單詞首字母縮寫詞作為標識符名字的組成部分。那么什么才是廣泛的被接受的縮寫詞呢,一種測試方式是,直接將該縮寫詞輸入到搜索引擎中,如果返回的前幾個結果都是和縮寫詞本意相關的結果,那么該縮寫詞就有資格被稱為眾所周知。
避免使用編程語言特有的名字
要給類型名使用語義上有意義的名字,而不要使用語言特有的關鍵字。
要使用CLR的通用類型,而不要使用語言特有的別名(如果除了類型之外,標識符沒有其他的語義)。
要使用比較常見的名字,比如value和item,而不要重復類型的名字(如果除了類型之外,標識符沒有其他的語義,且參數的類型無關緊要)。如:void Write(int value);
為已有API的新版本命名
當一個已有類型需要添加新的特性的時候,我們無法直接對已有類型的成員進行擴展或重載,為此,只能是通過添加不同名字的新成員。
要在創建已有API的新版本時使用與舊版API相似的名字。
要優先使用后綴而不是前綴來表示已有API的新版本。在寫C#的擴展方法時,比較常用。
考慮使用全新但有意義的標識符,而不是隨便給已有標識符加個前后綴。
要使用數字后綴表示已有API的新版本(如果已有API的名字是唯一有意義的名字,即它是一個工業標準,不適合添加后綴或改名)。
要在引入64位整數而非32位整數進行操作的新版本API時用“64”后綴。當已有32位的API存在時采用這種方式,對只有64位版本的全新API則不需要這樣做。
文章列表