2010-12-03 86 views
1

我對Java開發的知識相當有限。我遇到了以下相當令人畏懼的,被稱爲「相當典型的Java堆棧」的組件/工具/框架列表。我會去調查這些,但還有什麼應該在我的事情清單上知道一些事情?可以是下面的替代選項,也可以是不包含在此列表中的附加組件類型。我應該瞭解Java開發堆棧的哪些組件?

我的主要目的是做一些Scala開發,但實際上涉及到很多與Java的交互。

  • 檢票
  • 休眠(JPA)
  • Atomikos公司(JTA)
  • 陶土
  • 檢票 - 推(的cometd)
  • 道場
  • AspectJ的
  • XStream的
  • TestNG的
  • DBUnit的
  • EasyMock的
  • MySQL的
  • 碼頭
  • Maven的
  • 哈德森

編輯:當我說 「知道」,現在,我的意思不是知道他們深度以及如何與他們一起發展。我的意思是,我應該瞭解他們,他們是什麼,並認識到我應該考慮什麼時候使用它們。所以我有興趣聽到所有常用的工具/技術/框架,以便我可以對它們進行初步的調查。

+0

您是否在談論Web開發,桌面應用程序開發,服務器端開發,嵌入式開發發展,移動開發,科學發展......僅舉幾例? Java在很多地方都有使用,你需要什麼工具很大程度上取決於你要做什麼。 – 2010-12-03 13:07:03

+0

Web開發,主要是服務器端(客戶端可能主要限於測試服務器端的應用程序)。大型應用程序,與多個開發人員 – 2010-12-03 13:09:15

回答

4

這是一個相當大規模的服務器園區web應用程序的技術集合。

我建議您關注核心Java運行時並首先了解它,因爲這是所有其他技術最終構建的基礎。


編輯:由於你的重點是技術,我建議你開始學習如何在Java EE 6服務器比如GlassFish v3的我認爲這是相當不錯的編寫和部署Scala程序。其原因很簡單 - 您列出的所有技術都是獨立的實體,需要將這些實體合併才能工作。通過使用Java EE服務器,您可以將許多功能整合到一個包中,因此您可以推遲實際的修補程序,直到您更熟悉基於Java的Web平臺上的Scala環境。當你從「我已經編寫了一個Scala程序」到「我編寫並部署了一個Scala程序到我可以在這個網頁上看到的生產Java EE服務器」時,你實際上已經完成了一個非一件平凡的工作。

+0

謝謝,但我的重點是現在的技術。我想有一個關鍵的介紹性知識(「全尺寸服務器園web應用程序」是我正在使用的應用程序的標題) – 2010-12-03 12:10:54

0

把你的列表放在積壓,並開始與一個強大的IDE(日食或netbeans)。

我認爲首先需要添加一個日誌框架(log4j)和一個測試框架(jUnit或TestNG)。對於建設 - 我建議先看看螞蟻,然後再移動到maven。

哈德森是偉大的,但它只有在你使用版本控制,問題跟蹤和建設工具時纔有意義(對我來說)。

+0

謝謝。我正在使用Eclipse – 2010-12-03 12:19:02

0

我認爲自己是一名Java開發人員,並且您的列表中只有一個項目(我已經使用過)(XStream)。另外我知道其他5個項目,但其中大多數我從來沒有聽說過。

我認爲http://download.oracle.com/javase/7/docs/api/overview-summary.html的東西比其他人在「相當典型的Java堆棧」時更爲重要。如果你不知道你在標準運行時已經有了什麼,你怎麼知道你需要哪些額外的框架組件?大約有40000個課程需要了解。瞭解10元一天,你會掌握基礎知識,10年:-)

0
  • 啪API - 良好的XMPP協議API
  • 薩克森 - XSLT處理器
  • Spring框架 - web開發平臺
  • PostgreSQL的 - 偉大的RDBMS :)
  • 的java.nio
  • .....

還有許多,許多。

1

我只是會使用我用我自己

  • 休眠(JPA)的技術評論 - 這個框架可以讓您輕鬆與關係數據庫的記錄作爲普通Java工作對象
  • 道場 - Javascript庫,方便客戶端操作。如果你主要進行服務器端開發,你大多不需要擔心這一點。
  • AspectJ - 面向橫切需求的面向方面編程的實現。這是一個深深的兔子洞。這允許您以功能方式與Java代碼進行交互。
  • DBUnit - 我只用它作爲預加載數據庫的工具,其中包含大量測試記錄
  • EasyMock - 測試庫允許您專注於單元測試單個功能塊
  • MySQL - 標準RDMS
  • Jetty - servlet容器的純Java實現。非常適合快速開發。
  • 的Maven - 管理你的項目和建築的依賴性/部署你的項目構建工具