盤點最流行的Java工具
最流行的工具並不一定是“最好的”,對於開發來說,什麼是最好的,取決於使用場景。然而,當選擇工具時,流行程度是不可忽視的一個重要因素,並不是因為工具的流行增加了其價值,而是因為廣泛使用的社群帶來了無價的資源和支援。
流行的工具更容易學習,因為會有很多人樂意幫助你。如果是開源的話,麻煩就更少了。因為有更多的人在稽核程式碼和進行測試,能考慮到更多的情況。
在很多情況下,都會有一個對立的競爭對手,比如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這趟渾水,因為一談論這個,總是伴隨著很多爭吵,在使用者數量方面,似乎相當。也有一些第三方開發者兩者都用。
資料
- RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.9, 1.10)
- DZone Guide to the Java Ecosystem, 2015 edition (graphs 1 & 2)
編輯器和IDE
最流行的:Eclipse和IntelliJ IDEA(存在爭議)
次流行的:Netbeans
Eclipse和Netbeans都是免費、開源的。Eclipse以強大的社群和豐富的外掛聞名(開發Eclipse外掛非常方便),這讓Eclipse平臺的擴充套件性變得很強,但是這個IDE啟動比較慢。Netbeans通過整合了Maven和Git等讓自己變得與眾不同。IntelliJ以效能著稱,並且是一款商業產品。它有免費和付費兩種版本。
資料
- RebelLabs Java Tools and Technologies Landscape Report 2016 (IntelliJ IDEA was the top IDE in this report, figure 1.11)
- DZone Guide to the Java Ecosystem, 2015 edition (Eclipse was the top IDE in this one, paragraph 4)
Web Framework
最流行的:AngularJS,SpringMVC
次流行的:Java Server Faces(JSF)
三個調查中的兩個都顯示Spring MVC的受歡迎度比Java Server Faces(JSF)高,DZone的調查顯示Spring MVC和JSF之間不分伯仲。隨著JavaScript框架在web方面的發展,也許這些都不再重要了。有一個調查顯示,AngularJS相比與純Java框架,在前端方面更受歡迎。
資料
- RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.16)
- DZone Guide to the Java Ecosystem, 2015 edition (chart 3, paragraph 5 shows a tie)
- JSF and Spring MVC Tie in Java / JVM Frameworks Poll
應用伺服器
最流行的:Tomcat
次流行的:Wildfly
很長時間以來,Tomcat都是最流行的Java應用伺服器框架。它是一個輕量級框架,在一些其他調查中,Jetty——另一個輕量級應用框架——領先於Wildfly——最流行的Java EE支援的應用伺服器。Tomcat在輕量Java應用方面無疑是霸主地位,是微型服務架構方面的最佳選擇。
資料
- RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.13)
- DZone Guide to the Java Ecosystem, 2015 edition (chart 4)
- RebelLabs’ Great Application Server Debate 2013 (for a deeper dive into app server use cases)
測試框架
單元測試
最流行的:JUnit
名副其實的最佳Java測試框架
模擬
最流行的:Mockito
最受歡迎的Java模擬測試框架。
自動化Web瀏覽測試
最流行的:Selenium
Selenium只是自動化瀏覽測試。開發者經常使用這個工具配合其他的測試框架,來測試大型Web應用。
行為驅動開發測試(BDD)測試
最流行的:Cucumber-JVM, Spock
Cucumber最開始只是一個Ruby專案,但是現在已經用各大主流程式語言實現了。Spock支援JVM驅動的語言Groovy,當然也支援Java。Mockito能做的事情它基本上都能做。
資料
- RebelLabs Java Tools and Technologies Landscape Report 2014
- DZone Guide to Continuous Delivery, 2015 edition (page 20)
版本控制系統
最流行的:Git
次流行的:Subversion
記住,使用Git比僅僅使用Github和簡單提交那樣更加靈活。現在來看,Git贏得了版本控制大戰的勝利,很多Subversion和CVS的使用者逐漸開始轉向Git。
資料
持續整合
最流行的:Jenkins
次流行的:No CI server
在這方面也有一個明顯的巨頭。Jenkins靈活的外掛系統,在過去的五年間逐漸控制了這個領域。其餘Jenkins的競爭對手中,更多的人選擇No CI server。接下來是Bamboo。
資料
- RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.13)
- DZone Guide to Continuous Delivery, 2015 edition (page 20)
- DZone Guide to the Java Ecosystem, 2015 edition (paragraph 4)
資料庫
最流行的:OracleDB
次流行的:MySQL
在所有這些工具中,資料庫可謂是最取決於使用場景的。取決於你要建立的應用的不同,你可能需要一個輕量的鍵值對儲存資料庫,或者儲存很多列的資料庫。對於大多數的應用來說,一般的資料庫就能滿足需求,這就是為什麼這兩種資料庫可以排名前列的原因。
Oracle是這篇文章中為數不多的商業軟體,這意味著,它有很多“企業級”特性。如果你偏愛開源軟體的話,強烈推薦MySQL和SQLite。
資料
- DB-Engines Database Rankings
- DZone Guide to Databases 2016
- RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.14, this is the only Java-specific one)
物件關係對映
最流行的:The Java Persistence API (JPA) / Hibernate
次流行的:The Java Database Connectivity API (JDBC)
Hibernate太流行了,多年前就在Java Persistence API成了標準。
資料
- DZone Guide to the Java Ecosystem, 2015 edition (paragraph 4)
- RebelLabs Java Tools and Technologies Landscape Report 2014 (page 31)
靜態程式碼分析
最流行的:FindBugs
次流行的:SonarQube
這兩個工具非常不同,所以很難比較。FindBug是一個簡單的靜態程式碼分析工具,SonarQube是一個全平臺的程式碼質量分析、語法檢查、程式碼度量的工具。
資料
- DZone Guide to Continuous Delivery, 2015 edition (page 20)
- RebelLabs Java Tools and Technologies Landscape Report 2014 (page 2)
語法檢查
最流行的: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是商業軟體。商業軟體的好處是服務廣泛,可以在雲端執行測試。
資料
- RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.19)
- DZone Guide to Continuous Delivery, 2015 edition (page 20)
編譯自動化和依賴管理
最流行的: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中的設定展開。
原文:The Most Popular Java Tools for Every Phase of Development
作者:Mitch Pronschinske 翻譯:賴信濤 責編:仲培藝
相關文章
- 【技術乾貨】盤點最流行的Web漏洞掃描工具!Web
- 2017年度盤點:15個最流行的GitHub機器學習專案Github機器學習
- 各個開發階段最流行的Java工具彙總Java
- 最流行的自由職業者的工具
- 盤點2021年流行報表開發工具【測評】
- 【工具篇】最流行的Web漏洞掃描工具推薦!Web
- 騰訊與頭條各顯神通 春節期間最流行的十款遊戲盤點遊戲
- 最為流行的幾款Java IDEJavaIDE
- 最流行的六大資料模型工具大資料模型
- 2023年最流行的道德駭客工具
- 最流行的開源工具 Amanda 2.5 釋出(轉)開源工具
- 五大最流行的配置管理工具
- 最流行的敏捷方法敏捷
- 盤點最強最實用的Linux命令!Linux
- 2020年最流行的Java開發技術,最為主流的技術與工具你懂嗎?Java
- 2013移動開發工具盤點:最火原型設計工具移動開發原型
- 2019年最流行的7款Java框架Java框架
- 當下流行的網際網路人名詞盤點NZH
- 盤點開發者最喜愛的Swift技巧Swift
- 盤點:史上最牛逼的黑客事件!黑客事件
- 25種全球最流行的管理工具內容(轉載)
- 一張圖告訴你最流行的 7 個 JavaScript 框架特點JavaScript框架
- 盤點最實用56個大資料視覺化分析工具大資料視覺化
- 16 款最流行的JavaScript 框架JavaScript框架
- 六款好用的Mac最流行的開發工具,程式設計師必看~Mac程式設計師
- 2014 年最流行的 Java 應用伺服器Java伺服器
- [分享] 最流行的 10 個 JavaScript 庫JavaScript
- 最流行的JavaScript程式碼規範JavaScript
- 最流行的PHP 程式碼規範PHP
- GitHub 上最流行的程式語言Github
- 25種全球最流行的管理工具在中國的應用(轉載)
- Java字串的10大熱點問題盤點Java字串
- 最流行的5個前端框架對比前端框架
- 盤點一些小眾的線上工具
- 2021年最強資料分析工具盤點!想轉行跳槽的小白趕緊收藏
- 哪種程式語言最流行?
- 盤點人工智慧應用最廣的核心技術人工智慧
- 盤點通關所需時間最長的15款遊戲遊戲