2012-06-03 38 views
1

我正在開發一個Java項目,大約有十個開發團隊。我們都使用Eclipse作爲IDE。適合在團隊中使用任意代碼格式模板?

爲了讓團隊中更一致的風格的源代碼,我想知道是否有意義使用代碼格式化程序模板任意?我的意思是,在簽入代碼之前,只有在Eclipse中使用代碼格式化程序。

總的來說,我知道團隊將從一致的代碼風格中受益。問題是 - 它是否應該作爲武力規則?也許它太僵硬了。

示例1:模板強制最大線寬爲80.但如果某些線條分成許多行,則很難看。當然我知道80是可配置的。

例2:格式化代碼通過Eclipse中:

int green = 1; 
int red = 1; 
int orange = 1; 

我更喜歡代碼:

int green = 1; 
int red = 1; 
int orange = 1; 

所以我的意見是使用代碼模板,而不呆板,違反模板是允許的,並必要。你對此有何看法?

+1

禁止使用的一段代碼格式化因爲這是一個開放式的問題,你最好問在這裏 - HTTP://程序員。 stackexchange.com/?as=1 –

回答

2

我寧願創建一個彙編規則的文檔,讓所有人閱讀它。 規則在那裏被打破,你並不總是希望你的代碼格式化程序爲你自動完成工作(在我的情況下,這經常發生在多行if語句中)。

因爲你不會總是適用於編碼標準,每次有人使用自動格式化程序,他/她會在你的git/svn/cvs中造成混亂,改變行,實際上並沒有改變。

所以我的建議 - 不要使用自動格式化,並說服/學習/強制人們編寫可讀代碼。並做代碼評論呢!

2

我們使用什麼是checkstyle,同時配置在Eclipse(以幫助開發人員在編碼),並作爲Maven plugin進行自動驗證和報告。它檢查Sun/Oracle Java code conventions(他們是事實上的標準)和其他良好做法。每個人都知道這些規則,並可以應用一些符合慣例的小型自動格式化提示(即間距,...)。我們也做代碼評論。

在大多數情況下,我會盡量避免將個人意見考慮在內,因爲這隻會導致開發團隊發生激烈的戰爭。例如,在你的例子2中,Eclipse應用了「標準」格式,所以我不會嘗試使用另一種格式,只是因爲某人個人認爲它更容易理解。

在我看來這有幾個好處:

  • 從一個「集體代碼所有權」的觀點,所有的代碼似乎是由同樣的人來寫。
  • 在不同項目之間移動開發人員更容易。
  • 該代碼更容易閱讀維護。
  • 任何人都喜歡其他IDE並不重要。

對於新項目,一旦您使用Maven自動執行checkstyle驗證,我認爲進行嚴格驗證是一個好主意。也就是說,將代碼樣式錯誤視爲編譯錯誤(而不僅僅是警告),如果代碼樣式無效,構建將被破壞。它在開始時需要一點點紀律,但最終會導致更高的代碼質量。

0

我們檢查格式化程序配置到版本控制中,並將格式化程序配置爲保存操作。

這需要大家使用eclipse,但你已經這樣做了。

它具有以下優點:

  • 格式是一致的
  • 沒有人花時間格式化代碼
  • 沒有人認爲有關在代碼審查格式化

它的缺點是,有時格式化程序會做一些奇怪的事情。

  • 重寫本聲明的問題(例如,提取本地變量,縮短線路,避免換行)
  • 給予提示的格式(例如,你可以強制換行:這可以如下不客氣保持與//
  • 下他們打開/關閉標籤