盤點當下最流行的 Java 工具

背景

最流行的工具並不必定是「最好的」,對於開發來講,什麼是最好的,取決於使用場景。然而,當選擇工具時,流行程度是不可忽視的一個重要因素,並非由於工具的流行增長了其價值,而是由於普遍使用的社區帶來了無價的資源和支持。 

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

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

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

最流行工具類 

語言版本 前端

最流行的:Java 8 

次流行的:Java 7 

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

雖然如今不少Java應用和主要的應用都是用Java 8寫的,但也有很大數量的Java應用依然使用Java 7或6。 

我不會蹚Java EE和Spring這趟渾水,由於一談論這個,老是伴隨着不少爭吵,在用戶數量方面,彷佛至關。也有一些第三方開發者二者都用。 

數據 
java

編輯器和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框架,在前端方面更受歡迎。 

數據 
app

應用服務器 

最流行的: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 Java Persistence API (JPA) / Hibernate 

次流行的:The Java Database Connectivity API (JDBC) 

Hibernate太流行了,多年前就在Java Persistence API成了標準。 

數據 


靜態代碼分析 

最流行的:FindBugs 

次流行的:SonarQube 

這兩個工具很是不一樣,因此很難比較。FindBug是一個簡單的靜態代碼分析工具,SonarQube是一個全平臺的代碼質量分析、語法檢查、代碼度量的工具。 

數據 

語法檢查 

最流行的:Check  

次流行的:Eclipse 

大型的Java IDE都有這個功能,可是若是你須要特定的程序專門進行類型檢查,Check 是一個不錯的選擇。

數據 

人工倉庫管理 

最流行的: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中的設置展開。

思考

記得上次去擼串,旁邊師傅還一直喊呢:「問君何全部,烤串和啤酒。」做爲JAVA的源生者,咱們又怎麼能不熟悉當下最爲普遍使用的工具呢?
「工欲善其事,必先利其器」,這就是咱們的利器呢!
相關文章
相關標籤/搜索