2008-10-25 67 views
3

多年來我遇到過很多不同風格的變量名稱。是否有變量命名約定的簡明目錄?

目前的維基百科條目上的命名約定是相當輕...

我很樂意看到變量命名約定的簡明目錄,由名稱/說明其標識,以及一些例子。

如果一個公約特別受到某個平臺社區的青睞,那也是值得注意的。

我把它變成一個社區wiki,所以請爲每個約定創建一個答案,並根據需要進行編輯。

+0

可能還沒有人存在,因爲不同的語言允許不同的模式作爲變量名。但是這不應該阻止我們在這裏創造一個。 – 2008-10-25 00:06:33

回答

4

最好的命名規則設置,我所看到的是書中「Code Complete」史蒂夫·麥康奈爾在那裏大約命名約定和大量的示例的好節。他的例子通過了針對不同語言的許多「最佳實踐」,但最終將由開發人員,開發經理或架構師決定具體的行動。

1

Sun發佈了Java變量名稱約定列表here。該列表包括命名包,類,接口,方法,變量和常量的約定。

變量一章規定

除了變量,所有的實例,類和類常量,均採用首字母小寫混合的情況。內部詞語以大寫字母開頭。變量名稱不應以下劃線_或美元符號$字符開頭,即使兩者都是允許的。

變量名應該簡短而有意義。變量名稱的選擇應該是助記的 - 即設計爲向臨時觀察者指示其使用意圖。除了臨時的「一次性」變量之外,應避免使用一個字符的變量名稱。臨時變量的常用名稱是整數的i,j,k,m和n; c,d和e表示字符。

一些例子包括

int    i; 
char   c; 
float   myWidth; 
2

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__() 
1

無論你的命名規則是,它通常不會讓你輕鬆區分:

  • 實例(通常爲私有)變量
  • 局部變量(用作參數或局部函數)

對於本地變量,我使用基於indefinite article(a,an,某些)的用法的命名約定,並且沒有關於實例變量的文章,如在此問題中關於variable prefix所述。

因此,一個前綴(我的方式,或任何其他前綴列表in that question)可以是一種改進變量命名約定的方法。

我知道你的問題不限於變量,我只想指出命名約定的一部分。

0

有,Einar Hoest的"Java Programmers Phrasebook"

他與方法機構的結構分析方法名的語法結構在一起,並且收集的信息,如:

添加 - [名詞] - *這些方法通常具有參數和創建對象。 他們很少返回字段值。 該短語幾乎出現在所有的 應用程序中。

等...從數百個開源項目中收集而來。

欲瞭解更多背景信息,請參考SLE08 paper