2009-12-16 63 views
1

我有誰已經有一些生產應用的客戶端,因此已經取得了他們的生產環境中會是什麼這個下一個項目的一些決定:Java EE 5的開發環境

  • 太陽的iPlanet 6.1 SP7 (W /阿帕奇)
  • JDK 1.6
  • 的Oracle WebLogic 10 MP3
  • 的Oracle 10g
  • 1024位SSL

他們還爲Web應用程序的一些企業標準:

  • Tomcat的
  • Struts的
  • 與Safari瀏覽器,火狐,IE6,IE7
  • 兼容性

我也告訴我,這應用程序可能不需要在Java EE 5環境(可能只是一個Web容器)上完整,但需要通過客戶端EJB等與託管在單獨的weblogic實例上的應用程序進行通信,以及對其他Web服務調用企業服務。

我已經被賦予了一些任務來決定我們的開發和測試環境對於這個新團隊(包括我在內的2人或3人,但未來幾個月可能會增長)的外觀。我想創建一個人們可以使用他們喜歡的IDE並在本地主機上有良好的開發經驗,但仍然可以在測試環境中順利部署,然後再到生產環境。我的想法是,在本地工作站上,http是好的,但集成測試服務器應該看起來與生產服務器完全一樣,所有流量都應該是https,以確保我們能夠準確描述產品的內容。

瞭解開發者本地工作站的種類繁多,可能在其本地工作站上運行Mac OS X 10.6(Snow Leopard)或Windows 7,但也需要指定一個常見的測試服務器:什麼技術堆棧會爲我們提供一條從本地開發,測試到生產的良好平滑路徑?

編輯:對不起,當我說技術堆棧時,我的意思是例如Ant + JBoss + Tomcat + Oracle XE與Maven + Geronimo + Derby。基本上,我們需要在每臺開發機器和測試服務器上安裝具體的規範實施清單,這爲我們提供了靈活的開發環境,並順利過渡到測試和生產環境。編輯2:這可能是值得一提的是,這個應用程序,如果它需要堅持任何信息的話(我假設將是就是這樣),不管它是什麼,絕對不會很複雜。很有可能它會類似於基本的產品數據庫。

回答

4

我會去:

  1. 哈德森對於每日構建(或每籤)
  2. 水銀的Subversion源控制(工作GRE在Windows和Mac上)
  3. 春天,春天,春天。是的,我很認真,Spring解決了許多問題,而不僅僅是依賴注入;如安全性,批處理,事務處理,系統集成。
  4. 用於ORM的EclipseLink。它有許多高級功能(Hibernate缺乏)經常爲我節省(像體面的存儲過程支持)。
  5. 重量輕的容器,如碼頭,雄貓樹脂。如果您使用重度緩慢的東西,比如GeronimoJBoss,那麼您將要進行團隊攻擊。
  6. DeltaWalker合併/差異工具(可在所有平臺上工作)。
  7. 如果您打算使用高級數據庫功能,那麼請轉至OracleXE(和SQLDeveloper)。兩者都是很好的工具。如果不是,那麼像H2Derby很好。
  8. 的JUnit(或TestNG的)的Mockito單元測試/嘲笑。請使用Struts。嚴重的是,至少與Struts2或最好像JSF2,StripesGWT
  9. 一個體面的錯誤追蹤系統等,用於集成測試
  10. Sonar代碼質量

JTrac,管理平臺FogBugz的

  • 如果你要使用不同的IDE然後的Maven可能是一個好主意,因爲它允許每個IDE都可以從pom.xml進行配置(在IntelliJ/NetBeans中效果很好)。但我可以給你的最好的建議是這樣的。

    • 去你已經知道和有經驗。您不會在一夜之間從Struts過渡到JSF2。
    • 獲得最好的工具,你可以得到,認真自由的東西並不總是要走的路(雖然它往往是)。

    快樂黑客

  • +0

    所有偉大的建議,培養一個優秀的團隊討論。我們沒有選擇這個逐字,但最終我們做了類似的事情......謝謝:) – slf 2009-12-25 04:27:30

    0

    測試環境應該完全重複生產。也可以在測試環境中進行性能測試。如果硬件是一個問題,並且羣集中的服務器數量需要受到限制,那麼在測試上創建更少的服務器數量,但要複製相同的環境,例如iplanet(apache )+ weblogic + oracle db等......

    就本地環境而言,您可以使用Tomcat(因爲您只需要web容器),而對於ejb客戶端,您可以捆綁jar並使遠程呼叫(如果您正在遠程調用某個遠程應用程序)。如果您通過本地ejbs撥打本地電話,那麼您將不得不在本地機上使用weblogic進行開發。

    嘗試使用相同的IDE(儘管它主要是開發人員的選擇)。就操作系統而言,它並不重要,因爲如果您使用的是兼容的IDE,則只會從中構建代碼。

    還要確保IDE與tomcat(如果使用的話)或weblogic緊密耦合,以便在調試模式下運行代碼。

    一個非常重要的事情,首先決定代碼結構,然後在版本控制中檢查,以便從任何ide用戶檢入/檢出相同的結構。所有開發人員共享相同的結構。 在每個發行版中分支CVS或版本控制中的代碼,然後從頭結帳。同時非常重要的是使用單個構建文件並維護設置文檔以在本地框中構建環境。 另外關於使用框架,在編碼和維護中選擇最適合的框架,這樣可以減少代碼中的錯誤數量。現在大多數人使用Spring/Hibernate組合,但取決於它是否適合您的項目。 希望這有助於。

    1

    當你說「技術堆棧」時,你真的不清楚你到底在問什麼,你的意思是服務器,庫,構建工具?無論如何,這裏有一些輕率建議:

    • 哈德森持續集成
    • 避免行家,除非你真的,真的需要它。它引誘你像一個警笛聲,它承諾聲明性的依賴關係和約定優於配置,但實踐與理論有很大的不同
    • 儘可能地使用Spring而不是標準的Java SE/Java EE API。除了更簡單的API之外,它還有利於可測試性和AOP功能,這比直接使用AspectJ更容易。當然,它也提供了依賴注入支持鬆耦合
    • Hibernate作爲ORM,或者如果你的持久性的要求非常簡單,Spring的JDBC可能足以