我看到在它的數據類型寫的舊程式碼的變量:你使用什麼分類變量?
double dblMyVar;
int intYourVar;
String strTheirVar;
但是,如今,它似乎是老式的。這種方法的優點是你可以即時看到某個變量的類型。但我不喜歡長變量名稱。每當我我能說出我在一個單一的字符變量,如:
private Product p = new Product();
沒有命名變量現代化的「良好做法」或約定?你/你的公司使用什麼?
我看到在它的數據類型寫的舊程式碼的變量:你使用什麼分類變量?
double dblMyVar;
int intYourVar;
String strTheirVar;
但是,如今,它似乎是老式的。這種方法的優點是你可以即時看到某個變量的類型。但我不喜歡長變量名稱。每當我我能說出我在一個單一的字符變量,如:
private Product p = new Product();
沒有命名變量現代化的「良好做法」或約定?你/你的公司使用什麼?
如有疑問,請諮詢Java語言規範(JLS)。以下是有關Naming Conventions的部分。
// class member only if needed
private Product product;
// instantiates before using it
product = new Product();
在名稱中聲明變量類型非常沒用,因爲IDE會在鼠標懸停時向您顯示其類型。但是,對於其他開發人員(特別是如果您有大量變量)使用單個字符名稱可能會讓人感到困惑,並且違背了自我記錄原則。
這是一個很好的觀點,但是,特別是當你進行持久化時(當你必須在屬性和表格中重複字段名稱時),長名稱對代碼來說可能會更慢並且無聊。 – Alex 2012-02-02 12:34:05
@darth_alexious這取決於你如何做你的持久性。這可能是一個有效的觀點,即使對於我來說記住'var s'或'var something'是一樣的,但是如果你使用Hibernate/JPA /任何其他的東西,它幾乎沒有區別。 – Marcelo 2012-02-02 12:41:19
的確如此。我必須在我的項目中使用Hibernate,但同時,它太小而不值得。 – Alex 2012-02-02 12:45:46
y_xName,對於local/member/parameter/static,y是l/m/p/s。 x可以是int,f是float,p是指針等等。也許sp是共享指針。對於大多數類型的對象/引用,很少有任何東西。我更喜歡代碼是自我解釋的,因此沒有像「 p「或」m_p「。說出它是什麼。如果它是一個簡短的代碼片段,它實際上只是一種通用的「產品」,我可能會將其命名爲l_Product。即使你試圖保持76(?)個字符的線寬,在合適的位置打破線條,然後縮進可以使它看起來沒問題,並且你仍然可以從冗長的名字中看到什麼是實際發生。
那麼這只是我對其採取..
是的,的確如此。我覺得有點無聊,使用像「PreparedStatement preparedStatement = connection.prepareStatement(sql);」並隨時隨地使用[preparedStatement] ...我更喜歡p或pst之類的anithing,也使它更易讀... – Alex 2012-02-02 12:52:16
這個符號被稱爲「匈牙利」,並通過微軟推廣,使用它,如果你的作品:http://en.wikipedia.org/wiki/Hungarian_notation
太棒了!我不知道這種做法有背後的歷史和理論......非常有趣...... – Alex 2012-02-02 12:43:01
你應該使用「單個字母變量」唯一的時間是很短的一段代碼中,例如「foreach(var i in item)」或「using(var p = new Product())」。當然,這可以歸結爲您自己的偏好,但Visual Studio中有一個非常漂亮的小插件叫做StyleCop。它幾乎涵蓋了所有的樣式檢查,並且與ReSharper配合使用,它可以實時進行,甚至爲您解決問題。
這取決於語言。
關於C#:
MyVariable
):帕斯卡情況下_myVariable
或myVariable
):駱駝情況i
,j
,z
...)通常是可以的,如果使用限於一個小範圍。但這都是關於個人喜好。
在MSDN上編輯:General Naming Conventions。
每種語言/框架往往都有它自己的約定。例如,[Java](http://www.oracle.com/technetwork/java/codeconv-138413.html)和[.NET](http://msdn.microsoft.com/zh-cn/library/ms229042的.aspx)。 – LukeH 2012-02-02 12:21:42