自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

每個開發(fā)階段對應的最流行的Java工具

譯文
開發(fā) 后端
就因為某個工具是最流行的,并不意味著它就是“最好的”。在編程領域,什么是最好的取決于具體環(huán)境。然而,在一批類似的工具當中選擇時,人氣或受歡迎程度無疑是個重要的衡量標準。倒不是人氣本身增添了工具的價值,而是說某個工具的更龐大社區(qū)帶來了更豐富的資源和支持。

【51CTO.com快譯】就因為某個工具是***的,并不意味著它就是“***的”。在編程領域,什么是***的取決于具體環(huán)境。然而,在一批類似的工具當中選擇時,人氣或受歡迎程度無疑是個重要的衡量標準。倒不是人氣本身增添了工具的價值,而是說某個工具的更龐大社區(qū)帶來了更豐富的資源和支持。

[[174150]]

流行的工具更容易上手,因為有很多人可以幫助你使用它。而流行的開源工具往往代碼錯誤較少,因為有更多雙眼睛盯著代碼,更多的人在數(shù)量更多的場景下測試代碼。

所以,雖然始終有Apache和Nginx(這是兩種Web服務器)這樣的競爭對手:Apache用在數(shù)量多得多的網(wǎng)站上,但是Nginx更常被知名網(wǎng)站所使用,這意味著Nginx被一些最出色的工程團隊所使用――在許多情況下,人氣可能是工具之間的關鍵區(qū)別因素之一。

本文涵蓋了你在開發(fā)Java應用程序時需要的大部分重要工具,包括每個類別,提供了***的工具,還提供了“次流行的工具”,并附有一些背景介紹和來自Java社區(qū)調查的引言,證實了這些排名。Java初學者應看一下所有這些***工具,進一步熟悉整個生態(tài)系統(tǒng)。

語言版本

***的:Java 8

次流行的:Java 7

Java 8可能是任何新版本中采用速度最快的。這可能是由于,Java 8帶來了期待已久的現(xiàn)代語言功能,比如lambda表達式,緩解了Java經(jīng)常飽受詬病的冗長啰嗦這一缺點。性能提升也是一大方面。

雖然現(xiàn)在新的Java應用程序和主要的應用程序是用Java 8編寫的,但大量現(xiàn)有的Java應用程序依然使用Java 7或6。

我不會比較Java EE和Spring孰優(yōu)孰劣,因為這方面的統(tǒng)計數(shù)字始終存在爭議,而兩者的用戶數(shù)量似乎旗鼓相當。使用其中一種語言的約三分之一的開發(fā)人員同時還使用另一種語言。

編輯器或IDE

***的:Eclipse和IntelliJ IDEA(存在爭議)

次流行的:Netbeans

Eclipse和Netbeans都是免費、開源的。Eclipse以龐大的社區(qū)和豐富的插件(易于編寫)而家喻戶曉,這讓Eclipse平臺具有無比強大的擴展性,但是載入速度緩慢、有時比較笨拙。Netbeans的不同之處在于結合了一些特性,比如默認情況下就與Maven和Git整合起來。IntelliJ擁有商業(yè)產(chǎn)品的那種性能和成熟。它有免費版和收費版。

Web框架

***的:AngularJS和SpringMVC

次流行的:Java Server Faces(JSF)

雖然三分之二的調查顯示Spring MVC比Java Server Faces(JSF)更有優(yōu)勢,但DZone的大規(guī)模調查顯示,Spring MVC和JSF其實難分伯仲。這種比較可能不再重要,因為JavaScript框架正在大舉進入到許多流行的web堆棧。有一項調查詢問AngularJS的使用相比純粹的Java Web框架怎樣,結果發(fā)現(xiàn)AngularJS在前端方面比***的Java框架更有優(yōu)勢。

應用服務器

***的:Tomcat

次流行的:Wildfly

多年來,Tomcat一向是使用最廣泛的Java應用服務器。它是輕量級應用服務器,并不試圖實現(xiàn)所有的Java EE規(guī)格。在一些調查中,另一種輕量級應用服務器Jetty領先***的、支持Java EE的應用服務器Wildfly。對簡單的Java應用程序而言,Tomcat顯然是領頭羊;輕量級應用服務器無疑是微服務架構方面的***選擇。

測試框架

單元測試

***的:JUnit

事實上的Java單元測試框架。

模擬測試

***的:Mockito

它顯然是Java 模擬測試框架中的佼佼者。

自動化瀏覽器Web測試

***的:Selenium

Selenium可自動化測試瀏覽器。開發(fā)人員經(jīng)常結合測試框架來使用這個工具,進行大規(guī)模的Web應用程序測試。

行為驅動開發(fā)(BDD)測試

***的:Cucumber-JVM和Spock

Cucumber起初是個Ruby項目,但是現(xiàn)在已支持各大編程語言。除了Java外,Spock還支持JVM語言Groovy。它還能處理Mockito能處理的大部分工作。

版本控制系統(tǒng)

***的:Git

次流行的:Subversion

記?。篏it比僅僅使用GitHub及其版本控制約定來得活。Git似乎基本上贏得了版本控制大戰(zhàn)的勝利,而大多數(shù)Subversion和CVS用戶是只好使用一套遺留工具的開發(fā)人員。

持續(xù)集成

***的:Jenkins

次流行的:暫無

這是顯然存在領頭羊的另一個方面。在過去的五年間,Jenkins靈活的插件系統(tǒng)讓它逐漸成為霸主。不使用任何持續(xù)集成服務器的人比使用Jenkins的任何一個競爭對手的人要多。實力最接近的下一個競爭對手是Bamboo。

數(shù)據(jù)庫

***的:OracleDB

次流行的:MySQL

你在選擇數(shù)據(jù)庫時比本文介紹的其他許多工具更依賴具體環(huán)境。除了龐大的列式數(shù)據(jù)庫外,你可能還需要輕型的鍵值存儲數(shù)據(jù)庫,這取決于你在構建的應用程序。對于大多數(shù)應用程序來說,關系數(shù)據(jù)庫仍能滿足要求,這就是為什么你看到兩種關系數(shù)據(jù)庫躋身Java工具榜單的前列。

Oracle是本文中為數(shù)不多的商業(yè)軟件之一,這意味著它有許多“企業(yè)級”功能。如果你偏愛開源,MySQL或甚至SQLite是合理的選擇。

持久API及/或對象關系映射(ORM)

***的:Java持久API(JPA)/hibernate

次流行的:Java數(shù)據(jù)庫連接API(JDBC)

Hibernate太流行了,幾年前就在Java持久API規(guī)范當中實現(xiàn)了標準化。

靜態(tài)代碼分析

***的:FindBugs

次流行的:SonarQube

這兩個工具的范圍大不一樣,所以很難比較。FindBug是一個較簡單的靜態(tài)代碼分析工具,而SonarQube是個完整的平臺,可用于代碼質量分析、語法檢查和代碼度量。

語法檢查

***的:Checkstyle

次流行的:Eclipse

主要的Java IDE都有這項功能,但是如果你需要專門用于語法檢查的另一個程序,Checkstyle倒是個不錯的選擇。

工件管理

***的:Sonatype Nexus

次流行的:JFrog Artifactory

許多開發(fā)人員并不使用工件庫對JAR、WAR、庫和整個應用程序進行版本管理。但是他們在這么做時,Nexus更受用戶的青睞。兩者都是商業(yè)軟件。Apache Archiva是個開源工具。

依賴注入

***的:Spring Framework DI

次流行的:Google Guice

Spring框架在依賴注入方面做得不賴,但是谷歌的開發(fā)人員也開發(fā)了一款流行的工具:Guice。Dagger 的人氣比不上兩者,但它是新工具,用戶越來越多,尤其是在安卓開發(fā)方面。熱門游戲《Pokémon Go》用的就是它。

性能分析

Java分析

***的:VisualVM

次流行的:暫無

為數(shù)不少的Java開發(fā)人員并不使用任何性能分析工具(可能將性能問題交給不同的團隊去考慮)。YourKit是替代VisualVM的另一種流行的工具。

載入測試

***的:JMeter

次流行的:LoadRunner

除了這兩款工具外,還有一大批的載入測試工具,所以務必要調研這個市場。JMeter是開源工具,LoadRunner是商業(yè)產(chǎn)品。商業(yè)產(chǎn)品的主要優(yōu)點是它為在云端運行測試提供了眾多服務。

構建自動化和依賴管理

***的:Maven

次流行的:Gradle

雖然Maven是明顯的領頭羊,但是Gradle依然使用廣泛,是一種僅次于Maven的構建工具,它還是安卓平臺的標準構建工具。

日志庫

***的:Log4j

日志庫方面的次流行工具并不明確,因為這個工具類別方面開展的研究比較少。

原文標題:The most popular Java tools for every phase of development,作者:Mitch Pronschinske

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:趙立京 來源: 51CTO
相關推薦

2011-03-23 10:50:21

LAMPWeb開發(fā)

2011-01-04 18:04:49

PHP

2021-07-28 14:25:01

編程語言開發(fā)JavaScript

2022-05-18 13:43:04

Devops應用程序開發(fā)

2023-03-22 18:21:27

2010-05-25 15:12:59

Web

2009-11-10 09:39:00

Web設計

2020-08-12 13:18:49

Java編程語言

2014-02-04 19:44:23

編程語言開發(fā)

2014-02-19 10:34:48

JavaScript代碼規(guī)范

2017-01-15 17:44:27

Java EE服務器

2023-10-17 18:07:36

2022-12-04 23:52:11

iOS自動化工具

2011-03-21 13:01:10

2016-12-26 11:00:57

Java開發(fā)者工具

2017-06-27 14:02:09

前端框架Bootstrap

2018-03-13 09:34:30

人工智能編程語言Python

2023-03-31 11:21:10

網(wǎng)絡協(xié)議LoRaWAN

2013-11-11 11:34:56

UbuntuLinux發(fā)行版Unity

2017-07-14 14:50:00

架構框架前端
點贊
收藏

51CTO技術棧公眾號