5 第五章 命名規范
5.1 命名概述
名稱應該說明“什麼”而不是“如何”。通過避免使用公開基礎實現(它們會發生改變)的名稱,可以保留簡化復雜性的抽象層。例如,可以使用 GetNextStudent() ,而不是 GetNextArrayElement() 。
命名原則是:
選擇正確名稱時的困難可能表明需要進一步分析或定義項的目的。使名稱足夠長以便有一定的意義,並且足夠短以避免冗長。唯一名稱在編程上僅用於將各項區分開。表現力強的名稱是為了幫助人們閱讀;因此,提供人們可以理解的名稱是有意義的。其實從長變量名的負面作用三,因為Ctrl+C和Ctrl+V加上在VS中的智能感知,其負面追用已經很小。最優秀的代碼它本身就是注釋。作為一流的程序員。並不僅僅實現功能,而是要讓我們的代碼更加優美,具備讓他人維護或今後擴充的能力。作為現在的業務系統,其門檻的准入水平已大大降低,實現功能上的需求已沒有什麼難度,但是高手和菜鳥的區別在於,高手的代碼通俗易懂,在整個編碼的過程中,不僅能考慮到性能、還會考慮代碼可讀性和維護性。不過,請確保選擇的名稱符合適用語言的規則和標准。
以下幾點是推薦的命名方法。
1)避免容易被主觀解釋的難懂的名稱,如命名 AnalyzeThis() ,或者屬性名 xxK8。這樣的名稱會導致多義性。
2)在類屬性的名稱中包含類名是多余的,如 Book.BookTitle。而是應該使用 Book.Title。
3)只要合適,在變量名的末尾或開頭加計算限定符(Avg、Sum、Min、Max、Index)。
4)在變量名中使用互補對,如 min/max、begin/end 和 open/close。
5)布爾變量名應該包含 Is,這意味著 Yes/No 或 True/False 值,如 fileIsFound。
6)在命名狀態變量時,避免使用諸如 Flag 的術語。狀態變量不同於布爾變量的地方是它可以具有兩個以上的可能值。不是使用 documentFlag,而是使用更具描述性的名稱,如 documentFormatType。(此項只供參考)
7)即使對於可能僅出現在幾個代碼行中的生存期很短的變量,仍然使用有意義的名稱。僅對於短循環索引使用單字母變量名,如 i 或 j。可能的情況下,盡量不要使用原義數字或原義字符串,如
For i = 1 To 7。而是使用命名常數,如 For i = 1 To NUM_DAYS_IN_WEEK 以便於維護和理解。
8)文件名要和類名相同,一般情況下一個類一個文件。
5.2 大小寫規則
下表匯總了大寫規則,並提供了不同類型的標識符的示例。
標識符 大小寫 示例 類 Pascal AppDomain 枚舉類型 Pascal ErrorLevel 枚舉值 Pascal FatalError 事件 Pascal ValueChange 異常類 Pascal WebException