2009-07-26 40 views
3

我被分配到一個將要在Java中完成並由團隊中的一些程序員查看的大型項目。我希望代碼具有可讀性和可理解性,因此希望命名約定能夠適用於讀取它的每個人。我應該使用Java命名約定嗎?

我想知道是否必須使用Java命名約定以便其他人自然地查看它並理解它。我總是使用一種我自己的命名約定,與Java命名約定差別不大,但是繼承自C/C++命名約定。

最大的區別是變量,類和方法的命名。我使用變量名稱如intLargestNumber, chGet, strName。方法爲funType, funErase, funAdd, getThis, setThis,類爲Screen, clsPlay, cls_User。在Java命名約定中,變量使用myNumber,而方法使用lowSplit(),類使用Image

我的問題是,我應該使用Java命名約定還是使用自己的命名約定併爲我的代碼提供詞典或日誌?

回答

34

使用該語言的標準可以簡化攜帶新人員的工作。此外,使用外部定義的慣例可以幫助消除這些風格問題常常引起的宗教戰爭水平。

+7

+1努力防止宗教戰爭。 – Thilo 2009-07-26 00:17:29

+0

你剛纔提到宗教戰爭。我本可以努力! – Secko 2009-07-26 00:23:23

+6

+1:匈牙利符號是一種浪費字符。 – 2009-07-26 02:05:40

12

使用Java命名約定。嘗試將慣例從一種語言應用到另一種語言幾乎總是一個錯誤。事實是,大多數人不會花時間閱讀用於項目的公約。因此,使用該語言的既定規範總是更容易。

3

我被分配到一個將要在Java中完成並由團隊中的一些程序員查看的大型項目。

你如何問你的團隊領導?

一般來說,你應該有一個很好的理由不遵循其他人希望看到的約定。

+0

@Thilo「你問你的團隊領先?」我會在星期一! – Secko 2009-07-26 00:19:45

2

它不應該是你的決定。這是團隊應該做出的決定,還是強加給團隊的決定。

11

就我個人而言,我反對你的命名約定。它有一個名字:匈牙利符號。我認爲在變量名稱中嵌入類型是一個可怕的想法。如果我在你的團隊中,我會投反對票。

1

使用標準命名約定將減少新員工和其他人遷移到項目的速度。你也不需要記錄你的個人風格,爲了這個團隊的利益,節省了總是花時間來描述這些字段的含義以及不使用標準的原因。另一個好處是,您可以使用許多IDE提供的功能來進行簡單的代碼生成,而且只需很少的定製 - 這是您的項目中所有開發人員都需要的過程。

3

大多數Java程序大量使用標準Java類庫和第三方庫中的方法和類。除了極少數例外,它們符合Java風格指南中的建議。如果您爲名稱指定了大不相同的約定,那麼您的代碼將包含難看的風格混合。你的風格的任何可能的(理論上的)優勢都會在風格不一致的心理失調中喪失。

3

由於Steve GilhamEmil H表示,是的,當您編寫Java代碼時,您應該堅持使用Java約定。(同樣顯然也適用於任何語言或平臺)。

至於爲什麼應該是非常重要的,我建議你檢查出經典的Java書,Effective Java,由Joshua布洛赫。在其前言(available online here!)中,Guy Steele提供了一個很好的簡潔的參數,用於編寫給定語言的代碼慣用的。本書還包含一個具體的部分(第2版中的第56項):遵守公認的命名約定。這個項目只有幾頁長,你可能已經知道大部分內容,但更重要的是,整本書是編寫清晰可維護Java代碼的最佳指南。

你提到這是一個由程序員團隊完成的大型項目,這使得選擇更加清晰。即使所有的程序員碰巧都喜歡你的C/C++命名模式,但請記住,你的團隊組合在某些時候是非常合理的。一個新招聘的Java程序員在遇到遵循慣用語言的慣用Java代碼庫時,一定會感到更加自在。

0

如果你在Java代碼是的。

1

我一直認爲最好是始終錯誤,而不是不一致。如果您正在開始一個新項目並想要決定命名約定,請務必使用該標準。

如果你已經有一個項目,那就更難了。如果是這樣的話,你只需要決定是否值得將命名約定轉換爲Java標準或保持它的方式。處理不符合其命名的代碼總是很痛苦的,所以如果可以避免的話,我建議不要採用零碎的方法。