盤點當下最流行的 Java 工具

轉自:http://www.importnew.com/21793.html

最流行的工具並不一定是“最好的”,對於開發來說,什麼是最好的,取決於使用場景。然而,當選擇工具時,流行程度是不可忽視的一個重要因素,並不是因爲工具的流行增加了其價值,而是因爲廣泛使用的社區帶來了無價的資源和支持。

流行的工具更容易學習,因爲會有很多人樂意幫助你。如果是開源的話,麻煩就更少了。因爲有更多的人在審覈代碼和進行測試,能考慮到更多的情況。

在很多情況下,都會有一個對立的競爭對手,比如Apache和Nginx——兩個web服務器。Apache被使用的更多,但是頂尖的網站使用Nginx更多,也就是說,頂級工程師更加青睞Nginx——在很多情況下,流行度可能是區分工具最重要的一點。

這份列表包含了開發Java應用程序所需要的大部分工具。包括最流行的、次流行的,他們都有強大的社區支持。Java的初學者需要認識一下這些工具,熟悉生態系統。

語言版本

最流行的:Java 8

次流行的:Java 7

Java 8可能是所有版本中被接受最快的。可能是因爲,Java 8帶來了期待已久的現代語言特性,例如lambda表達式,解決了長久以來Java飽受人們批評的冗長囉嗦的缺點。當然,性能也是一大方面。

雖然現在很多Java應用和主要的應用都是用Java 8寫的,但也有很大數量的Java應用依然使用Java 7或6。

我不會蹚Java EE和Spring這趟渾水,因爲一談論這個,總是伴隨着很多爭吵,在用戶數量方面,似乎相當。也有一些第三方開發者兩者都用。

數據

編輯器和IDE
最流行的:Eclipse和IntelliJ IDEA(存在爭議)

次流行的:Netbeans

Eclipse和Netbeans都是免費、開源的。Eclipse以強大的社區和豐富的插件聞名(開發Eclipse插件非常方便),這讓Eclipse平臺的擴展性變得很強,但是這個IDE啓動比較慢。Netbeans通過整合了Maven和Git等讓自己變得與衆不同。IntelliJ以性能著稱,並且是一款商業產品。它有免費和付費兩種版本。

數據

Web Framework

最流行的:AngularJS,SpringMVC

次流行的:Java Server Faces(JSF)

三個調查中的兩個都顯示Spring MVC的受歡迎度比Java Server Faces(JSF)高,DZone的調查顯示Spring MVC和JSF之間不分伯仲。隨着JavaScript框架在web方面的發展,也許這些都不再重要了。有一個調查顯示,AngularJS相比與純Java框架,在前端方面更受歡迎。

數據

應用服務器
最流行的:Tomcat

次流行的:Wildfly

很長時間以來,Tomcat都是最流行的Java應用服務器框架。它是一個輕量級框架,在一些其他調查中,Jetty——另一個輕量級應用框架——領先於Wildfly——最流行的Java EE支持的應用服務器。Tomcat在輕量Java應用方面無疑是霸主地位,是微型服務架構方面的最佳選擇。

數據

測試框架
單元測試
最流行的:JUnit
名副其實的最佳Java測試框架

模擬 
最流行的:Mockito
最受歡迎的Java模擬測試框架。

自動化Web瀏覽測試
最流行的:Selenium
Selenium只是自動化瀏覽測試。開發者經常使用這個工具配合其他的測試框架,來測試大型Web應用。

行爲驅動開發測試(BDD)測試
最流行的:Cucumber-JVM, Spock
Cucumber最開始只是一個Ruby項目,但是現在已經用各大主流編程語言實現了。Spock支持JVM驅動的語言Groovy,當然也支持Java。Mockito能做的事情它基本上都能做。

數據

版本控制系統
最流行的:Git
次流行的:Subversion
記住,使用Git比僅僅使用Github和簡單提交那樣更加靈活。現在來看,Git贏得了版本控制大戰的勝利,很多Subversion和CVS的用戶逐漸開始轉向Git。

數據

持續集成
最流行的:Jenkins
次流行的:No CI server
在這方面也有一個明顯的巨頭。Jenkins靈活的插件系統,在過去的五年間逐漸控制了這個領域。其餘Jenkins的競爭對手中,更多的人選擇No CI server。接下來是Bamboo。

數據

數據庫
最流行的:OracleDB
次流行的:MySQL
在所有這些工具中,數據庫可謂是最取決於使用場景的。取決於你要創建的應用的不同,你可能需要一個輕量的鍵值對存儲數據庫,或者存儲很多列的數據庫。對於大多數的應用來說,一般的數據庫就能滿足需求,這就是爲什麼這兩種數據庫可以排名前列的原因。
Oracle是這篇文章中爲數不多的商業軟件,這意味着,它有很多“企業級”特性。如果你偏愛開源軟件的話,強烈推薦MySQL和SQLite。

數據

對象關係映射
最流行的:The / Hibernate
次流行的:The
Hibernate太流行了,多年前就在Java Persistence API成了標準。

數據

靜態代碼分析
最流行的:FindBugs
次流行的:SonarQube
這兩個工具非常不同,所以很難比較。FindBug是一個簡單的靜態代碼分析工具,SonarQube是一個全平臺的代碼質量分析、語法檢查、代碼度量的工具。

數據

語法檢查
最流行的:Checkstyle
次流行的:Eclipse
大型的Java IDE都有這個功能,但是如果你需要特定的程序專門進行類型檢查,Checkstyle是一個不錯的選擇。

數據

人工倉庫管理
最流行的:Sonatype Nexus
次流行的:JFrog Artifactory
很多開發者並不使用人工倉庫管理JARs,WARs,庫和應用。但是如果想這麼做的話,Nexus是最好的選擇。兩者都是商業軟件,Apache Archiva是一個開源的選擇。

數據

控制反轉
最流行的:Spring Framework DI
次流行的:Google Guice
Spring framework在控制反轉方面做的很不錯,但是Google的開發者也做了一個不錯的工具。Dagger在這方面的用戶並不很多,但是正在逐漸流行起來,尤其是安卓開發方面。Pokémon Go使用的也是它。

數據

性能分析
Java性能總覽
最流行的:VisualVM
次流行的:No profiler
有相當一部分的開發者並不使用性能分析工具(也許他們有專業的性能優化團隊來做)。YourKit也是替代VisualVM的一個不錯選擇。

載入測試
最流行的:JMeter
次流行的:LoadRunner
除了這兩款工具之外,還有很多做載入性能測試的工具,所以在使用之前,最好做好充分的市場調研。JMeter是開源軟件,LoadRunner是商業軟件。商業軟件的好處是服務廣泛,可以在雲端運行測試。

數據

編譯自動化和依賴管理
最流行的:Maven
次流行的:Gradle
Maven無疑佔據了領導地位,但是Gradle的使用也很廣泛,它還是安卓的標準編譯工具。

數據

  • RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.12)
  • DZone Guide to the Java Ecosystem, 2015 edition (chart 4)

日誌庫
最流行的:Log4j
次流行的日誌庫尚不明確,這方面的調查比較少。這篇文章的內容場景圍繞流行的日誌庫和Java中的設置展開。

發佈了28 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章