一、命名
對於理解應用程序的邏輯流,命名方案是最有影響力的一種幫助。名稱應該說明“什麼”而不是“如何”。通過避免使用公開基礎實現(它們會發生改變)的名稱,可以保留簡化復雜性的抽象層。例如,可以使用 GetNextStudent(),而不是 GetNextArrayElement()。
命名原則是:
選擇正確名稱時的困難可能表明需要進一步分析或定義項的目的。使名稱足夠長以便有一定的意義,並且足夠短以避免冗長。唯一名稱在編程上僅用於將各項區分開。表現力強的名稱是為了幫助人們閱讀;因此,提供人們可以理解的名稱是有意義的。不過,請確保選擇的名稱符合適用語言的規則和標准。
以下幾點是推薦的命名方法。
1、方法、屬性、變量規范
· 避免容易被主觀解釋的難懂的名稱,如方面名 AnalyzeThis(),或者屬性名 xxK8。這樣的名稱會導致多義性。
· 在面向對象的語言中,在類屬性的名稱中包含類名是多余的,如 Book.BookTitle。而是應該使用 Book.Title。
· 使用動詞-名詞的方法來命名對給定對象執行特定操作的例程,如 CalculateInvoiceTotal()。
· 在允許函數重載的語言中,所有重載都應該執行相似的函數。
· 只要合適,在變量名的末尾或開頭加計算限定符(Avg、Sum、Min、Max、Index)。
· 在變量名中使用互補對,如 min/max、begin/end 和 open/close。
· 鑒於大多數名稱都是通過連接若干單詞構造的,請使用大小寫混合的格式以簡化它們的閱讀。另外,為了幫助區分變量和例程,請對例程名稱使用 Pascal 大小寫處理 (CalculateInvoiceTotal),其中每個單詞的第一個字母都是大寫的。對於變量名,請使用 camel 大小寫處理 (documentFormatType),其中除了第一個單詞外每個單詞的第一個字母都是大寫的。
· 布爾變量名應該包含 Is,這意味著 Yes/No 或 True/False 值,如 fileIsFound。
· 在命名狀態變量時,避免使用諸如 Flag 的術語。狀態變量不同於布爾變量的地方是它可以具有兩個以上的可能值。不是使用 documentFlag,而是使用更具描述性的名稱,如 documentFormatType。
(此項只供參考)
· 即使對於可能僅出現在幾個代碼行中的生存期很短的變量,仍然使用有意義的名稱。僅對於短循環索引使用單字母變量名,如 i 或 j。