盤點最流行的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
- 盤點2021年流行報表開發工具【測評】
- 2023年最流行的道德駭客工具
- 【工具篇】最流行的Web漏洞掃描工具推薦!Web
- 2019年最流行的7款Java框架Java框架
- 2020年最流行的Java開發技術,最為主流的技術與工具你懂嗎?Java
- 盤點最強最實用的Linux命令!Linux
- 五大最流行的配置管理工具
- 騰訊與頭條各顯神通 春節期間最流行的十款遊戲盤點遊戲
- 當下流行的網際網路人名詞盤點NZH
- 2020年最流行的Java開發技術你不瞭解下?Java
- 六款好用的Mac最流行的開發工具,程式設計師必看~Mac程式設計師
- 我最喜愛的美劇年度盤點
- 熱門好用的企業網盤工具大盤點
- [分享] 最流行的 10 個 JavaScript 庫JavaScript
- 2021年最強資料分析工具盤點!想轉行跳槽的小白趕緊收藏
- FigJam:2021年最流行的線上白板
- FastAPI:2021年最流行的Python的Web框架ASTAPIPythonWeb框架
- 盤點一些小眾的線上工具
- 手機AI晶片大盤點,誰最強?AI晶片
- 2021,17個 最流行的 Vue 外掛Vue
- 盤點6個Kubernetes監視工具
- #2018 開發者生態報告:Java 最流行,Go 最有潛力JavaGo
- 盤點!最適合新手使用的Linux作業系統Linux作業系統
- 盤點人工智慧應用最廣的核心技術人工智慧
- 盤點Linux常見的程式碼統計工具!Linux
- 盤點Linux系統中常用的防火牆工具!Linux防火牆
- Spring 的優秀工具類盤點第 1 部分Spring
- Java在生活中的應用盤點!Java
- 2020 年 Go 語言盤點:新冠大流行阻擋不了 Go 演進的步伐Go
- 最強盤點!國產資料分析BI工具怎麼選?看這篇就夠了
- 最流行的5大開源Web伺服器Web伺服器
- 盤點通關所需時間最長的15款遊戲遊戲
- 寶鯤財經:最基礎的炒匯技術盤點
- 盤點網路安全最值得選擇的就業崗位!就業
- 年度大盤點:那些最值得你瞭解的容器技術
- 盤點7款應用最廣泛的 Linux 桌面環境Linux
- 盤點2021年十大最值得期待的IP手遊
- 【盤點】Linux運維管理伺服器常用的工具!Linux運維伺服器