2011-01-22 108 views
8

通常情況下,在現有項目上做一些工作時,我會隨着代碼庫中已經建立的任何風格去做。但我們的團隊必須維護多箇中小型項目,這些項目在編碼風格上都略有不同。如果我們能夠清除這些差異,那將會更有效率,更容易混淆。有什麼工具可以重構java代碼庫的編碼風格嗎?

所以我正在尋找一個工具,允許我重構現有的風格。標準的代碼格式工具已經提供了許多功能,例如更改縮進樣式。我所缺少的是一個工具,它允許我去掉字段和參數名稱的前綴。在一些項目中,所有成員的前綴都是「m」,所有參數都以「p」爲前綴,而靜態成員的前綴爲「s」。

該工具應能夠處理的情況下,如:

void setValue(String pValue) { 
    mValue = pValue; 
} 

應該變成:

void setValue(String value) { 
    this.value = value; 
} 

該工具應產生這樣的情況下警告:

void setValue(String pValue) { 
    int value = 42 
} 

我知道每個主要的IDE都提供了重構:重命名功能。我正在尋找的是一個處理整個代碼庫的工具,而不需要單獨查看每個參數/字段。

編輯

很多的答案提到的工具來重新格式化源代碼或覈對一組樣式規則的代碼庫。我知道這些工具存在。我特別尋找的是一個高級工具,它允許我刪除特定於作用域的變量名稱前綴。

+0

不知重構工具,可以做到這一點,但是,我知道,[Checkstyle的(http://checkstyle.sourceforge.net/)可以檢測並警告匈牙利符號。 – BalusC 2011-01-22 14:29:56

+0

你可不想看看[astyle](http://astyle.sourceforge.net/)? – Uroc327 2013-06-01 14:20:11

回答

-2

FindBugs是一個很好的代碼靜態分析工具。它真的探索潛在的錯誤 ,並且很容易集成到IDE和構建工具中。

+3

OP是專門要求重構工具的。 FindBugs(和CheckStyle)不是。 – BalusC 2011-01-22 15:28:24

+1

我同意BalusC – Krishna 2011-01-22 16:33:40

0

我不知道現有的項目會爲你做這個。

你有沒有考慮寫自己的?例如,Eclipse框架確實提供了可靠的代碼格式化工具。你有沒有調查過擴展其中一個去做你的建議?檢測用你提到的模式命名的變量應該相當簡單。

我意識到這不是一個理想的解決方案。但是,如果您擁有足夠大的代碼庫,則可能比手動進行所有編輯更具成本效益。

0

聽起來像Jalopy可能幫助。

Jalopy允許您定義代碼格式樣式,然後它可以讀取文件,包或整個項目並重新格式化它。我不記得它是否可以進行更復雜的重構,比如將局部變量的樣式更改爲不使用匈牙利符號(mVar廢話),但它可以在任何間距,包圍,排序等格式化之間進行更改。

我以前用過Jalopy,它運行良好。我甚至在人們使用不同的個人編碼風格的團隊中使用它,然後在提交時我們都同意了Jalopy自動處理的某種格式。(當你看看你格式化你的方式,當它被重新簽入它被格式化的團隊在方式約定等),當然

的一個問題,它看起來像它沒有被維持一年或者。但是,最近有一個commercial version too--似乎努力朝着這個方向發展。儘管如此,舊版本可能沒問題。

還有其他類似的商業產品一樣Jindent

1

您是否嘗試過Eclipse的Clean Up工具?誠然,它不會處理這裏顯示的一些示例,但在我看來它確實是一個相當不錯的工作。

2

我正在尋找類似的甚至更高級的工具。我試圖實現設計度量,這是非常依賴於上下文的。我發現了一些工具,如Ndepend和reflectk,這些工具很商業化且非常昂貴。我還發現了一些開源工具,像Hammurapi。還有Checkstyle,Findbugs和PMD等工具,可用於非常簡單的用例。我發現的最好的工具是MoDisco。它基於Eclipse EMF,可以生成代碼模型,並且可以執行一些查詢或轉換(使用M2M工具)。我遇到的唯一問題是標準〜20k LOC項目的速度很慢。試試看,也許對於你的用例來說就足夠了。

0

的Eclipse IDE是你的問題的最佳選擇..

相關問題