2009-10-01 32 views
1

我正在開發一個日益增長的java項目,我可能會與其他人合作來改進一些功能。小型java項目越來越多(maven和junit)

我想使用一些工具來提高我的工作保持質量記住:

  • 我沒有太多的時間花在這個項目
  • 這是一個小項目但是這對我真的很重要
  • 我不希望它
  • 我已經使用SVN

購買軟件/硬件做什麼ÿ你想想maven和junit?值得花時間給他們嗎? 你知道任何其他好工具嗎?

回答

5

既然你沒有使用JUnit,我的猜測是你還沒有任何單元測試。如果其他人開始編寫代碼,這對我來說似乎是您採取的最重要的一步。沒有單元測試,有人可能很容易破壞功能而不知道它。

創建一套包含至少80%代碼的單元測試。您可以使用Cobertura來測量代碼覆蓋率。這可能看起來像很多工作,但將爲您節省更多的時間。

Maven現在是構建和部署的實際標準,但它也有其缺陷。如果你有一個很好的文檔構建過程(使用Ant或自定義腳本),我會建議引入Maven比添加單元測試更重要。

+0

添加測試可能需要幾個月,但添加maven可能需要幾天時間。 – IAdapter 2009-10-01 19:47:50

+0

我也喜歡Maven - 但實際上可能需要幾天時間才能讓他1)充分了解Maven,看看他的現有項目如何適合Maven。 2.)改變他的項目結構以符合Maven的期望(取決於它有多大以及它有多少不同)。 – Nate 2009-10-02 04:00:38

8

Maven和JUnit對於強制執行良好習慣(單元測試,統一結構)很有好處,並且還有良好的SCM習慣,我認爲這些是協作開發最重要的部分。

1

我們在一個相當大的項目上使用Maven和JUnit,並發現它非常有幫助。

對於項目策劃,我強烈推薦FogBugz。這是迄今爲止我所見過的最好的問題跟蹤系統,同時也爲項目管理提供了很好的支持,並且可以爲最多2人的團隊免費提供。

+0

「對於最多2人的團隊免費」對於具有增長潛力的小項目聽起來很危險。如果您的團隊不斷增長,您不希望被鎖定在問題跟蹤器之外(或拒絕某些人訪問)。 – 2009-10-01 18:35:54

+0

它遠勝於我嘗試過的任何開源替代品。如果一個商業項目有2人以上,那麼肯定值得考慮購買。除了成爲客戶之外,我並沒有將其與公司聯繫起來(順便說一句,這是Stack Overflow的製造商製作的)。 – 2009-10-01 19:11:01

4

JUnit非常適合在任何項目上驗證您的代碼。

Maven的學習曲線很難超越。如果你有一個模塊和一套相對簡單的構建步驟,你可能會發現使用Ant更簡單。

另一方面,使用Maven構建,您可以簡單地向代碼添加額外的報告以檢查代碼中的各種參數,並且遷移到Maven比從頭開始符合約定要困難得多。

Maven插件的例子,可以幫助檢查你的代碼:

  • Findbugs(可能是錯誤的靜態分析)
  • Checkstyle(強制編碼標準)
  • PMD(更多靜態分析)
  • PMD CPD(複製粘貼檢測)
  • JDepend(循環依賴性檢查和包coupli NG)
  • Cobertura(代碼覆蓋率)

如果你有興趣在代碼質量的插件,也可以考慮Sonar,它封裝這些插件,給你一些時髦的報告。

如果你對最佳實踐感興趣,也可以考慮持續集成服務器,Hudson是免費的,並與Maven完美集成。

+0

+1對於findbugs – sal 2009-10-01 21:11:53

0

如果你使用Eclipse和SVN,我建議你看看Mylyn。其基本概念非常簡單,但在團隊中工作時有很大幫助。 在我的謙虛看來,Maven實在太討厭它的真正好處了。也許螞蟻對於您的部署任務來說足夠了。

0

我在一個項目中使用了maven,並且錯過了它。雖然在設置和配置方面有相當大的前期投資。當我使用XML文檔時,XML文檔已經過時(可能這已經改進了)。一旦你通過了這個初始設置,雖然它是一個很棒的節省時間。

至於JUnit,它很棒。用它。

這兩種工具都應該視爲投資。起初,它可能看起來像很多不相關的東西,但從長遠來看,該項目的可預測性會增加,問題會更少。