多年來我遇到過很多不同風格的變量名稱。是否有變量命名約定的簡明目錄?
目前的維基百科條目上的命名約定是相當輕...
我很樂意看到變量命名約定的簡明目錄,由名稱/說明其標識,以及一些例子。
如果一個公約特別受到某個平臺社區的青睞,那也是值得注意的。
我把它變成一個社區wiki,所以請爲每個約定創建一個答案,並根據需要進行編輯。
多年來我遇到過很多不同風格的變量名稱。是否有變量命名約定的簡明目錄?
目前的維基百科條目上的命名約定是相當輕...
我很樂意看到變量命名約定的簡明目錄,由名稱/說明其標識,以及一些例子。
如果一個公約特別受到某個平臺社區的青睞,那也是值得注意的。
我把它變成一個社區wiki,所以請爲每個約定創建一個答案,並根據需要進行編輯。
最好的命名規則設置,我所看到的是書中「Code Complete」史蒂夫·麥康奈爾在那裏大約命名約定和大量的示例的好節。他的例子通過了針對不同語言的許多「最佳實踐」,但最終將由開發人員,開發經理或架構師決定具體的行動。
Sun發佈了Java變量名稱約定列表here。該列表包括命名包,類,接口,方法,變量和常量的約定。
變量一章規定
除了變量,所有的實例,類和類常量,均採用首字母小寫混合的情況。內部詞語以大寫字母開頭。變量名稱不應以下劃線_或美元符號$字符開頭,即使兩者都是允許的。
變量名應該簡短而有意義。變量名稱的選擇應該是助記的 - 即設計爲向臨時觀察者指示其使用意圖。除了臨時的「一次性」變量之外,應避免使用一個字符的變量名稱。臨時變量的常用名稱是整數的i,j,k,m和n; c,d和e表示字符。
一些例子包括
int i;
char c;
float myWidth;
PEP8是Python代碼的風格指南,它是Python社區中相對有影響力的標準庫的一部分。對於獎勵積分,除了涵蓋Python標準庫使用的命名約定之外,它還概括地提供了命名約定的概述。
根據PEP8:變量,實例變量,函數和方法在標準庫都應該使用由下劃線分隔小寫字可讀性:
foo
parse_foo
a_long_descriptive_name
要從一個保留字區分名,附加的強調:
in_
and_
or_
名稱是弱的私人(不通過「的M進口*」進口)開始以單下劃線。名稱加密的名稱以雙下劃線開頭。:
_some_what_private
__a_slightly_more_private_name
名稱是Python的「特別」的方法開始,以雙下劃線結尾:
__hash__ # hash(o) = o.__hash__()
__str__ # str(o) = o.__str__()
無論你的命名規則是,它通常不會讓你輕鬆區分:
對於本地變量,我使用基於indefinite article(a,an,某些)的用法的命名約定,並且沒有關於實例變量的文章,如在此問題中關於variable prefix所述。
因此,一個前綴(我的方式,或任何其他前綴列表in that question)可以是一種改進變量命名約定的方法。
我知道你的問題不限於變量,我只想指出命名約定的一部分。
有,Einar Hoest的"Java Programmers Phrasebook"。
他與方法機構的結構分析方法名的語法結構在一起,並且收集的信息,如:
添加 - [名詞] - *這些方法通常具有參數和創建對象。 他們很少返回字段值。 該短語幾乎出現在所有的 應用程序中。
等...從數百個開源項目中收集而來。
欲瞭解更多背景信息,請參考SLE08 paper。
可能還沒有人存在,因爲不同的語言允許不同的模式作爲變量名。但是這不應該阻止我們在這裏創造一個。 – 2008-10-25 00:06:33