首页 > 编程语言 >盘点当下最流行的 Java 工具

盘点当下最流行的 Java 工具

时间:2022-08-31 19:55:19浏览次数:93  
标签:Java 流行 当下 盘点 Report Technologies Tools Landscape

  最流行的工具并不一定是“最好的”,对于开发来说,什么是最好的,取决于使用场景。然而,当选择工具时,流行程度是不可忽视的一个重要因素,并不是因为工具的流行增加了其价值,而是因为广泛使用的社区带来了无价的资源和支持。

  流行的工具更容易学习,因为会有很多人乐意帮助你。如果是开源的话,麻烦就更少了。因为有更多的人在审核代码和进行测试,能考虑到更多的情况。

  在很多情况下,都会有一个对立的竞争对手,比如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 2014DZone Guide to Continuous Delivery, 2015 edition (page 20)

  版本控制系统

  最流行的:Git

  次流行的:Subversion

  记住,使用Git比仅仅使用Github和简单提交那样更加灵活。现在来看,Git赢得了版本控制大战的胜利,很多Subversion和CVS的用户逐渐开始转向Git。

  数据

  RebelLabs Java Tools and Technologies Landscape Report 2016 (figure 1.18)

  持续集成

  最流行的: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 RankingsDZone Guide to Databases 2016RebelLabs 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是一个不错的选择。

  数据

  DZone Guide to Continuous Delivery, 2015 edition(page 20)

  人工仓库管理

  最流行的:Sonatype Nexus

  次流行的:JFrog Artifactory

  很多开发者并不使用人工仓库管理JARs,WARs,库和应用。但是如果想这么做的话,Nexus是最好的选择。两者都是商业软件,Apache Archiva是一个开源的选择。

  数据

  RebelLabs Java Tools and Technologies Landscape Report 2014 (page 45)

  控制反转

  最流行的:Spring Framework DI

  次流行的:Google Guice

  Spring framework在控制反转方面做的很不错,但是Google的开发者也做了一个不错的工具。Dagger在这方面的用户并不很多,但是正在逐渐流行起来,尤其是安卓开发方面。Pokémon Go使用的也是它。

  数据

  Poll of reddit.com/r/java

  性能分析

  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中的设置展开。

标签:Java,流行,当下,盘点,Report,Technologies,Tools,Landscape
From: https://www.cnblogs.com/ebuybay/p/16644355.html

相关文章

  • java使用Stream简单操作集合
     效果图  本项目使用springbootpom依赖<!--lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <v......
  • 2022-08-31 第二小组 张晟源(javaweb,el,jstl,分页查询)
    JavaWeb一,JSPJSP(全称JavaServerPages),运行在服务端的语言<%//java代码%>1.JSP脚本只能有java代码,在访问JSP时,JSP引擎翻译JSP页面中的脚本2.J......
  • 【Java】FileUtils-获取路径的所有文件(或文件夹)
    一、获取指定路径下的所有Excel文件packagecom.boulderaitech.utils;importjava.io.File;importjava.util.Arrays;publicclassFileUtil{publicstaticvo......
  • Java方法总结
    什么是方法何谓方法就是一个方法只完成一个功能,这样利于后期的扩展例子:publicstaticvoidmain(String[]args){  System.out.println(add(1,2));}pub......
  • 浅谈-java GUI-基础理论
    GUI:GraphicalUserInterface(图形用户接口)用图形的方式,用来显示计算机操作的界面Java为GUI提供的API都存在java.awt和javax.Swing两个包中java.awt包:awt是这三个......
  • JVM和java体系结构
    前言:JVM(JavaVirtualMachine)是java虚拟机,是java上层框架的基础,欲练神功,先练内功!JVM和java体系结构  一次编译,到处运行.跨平台   不同语言使用编译器......
  • LeaRun.Java工作流引擎 快速开发业务流程
    工作流引擎是用来开发工作流转的框架。作为应用系统的一部分,能根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案,包含组织结构、流程、节点、转向规则......
  • 4.Docker部署java项目测试
    FROMopenjdk:8u332-jdk-oraclelinux7WORKDIR/home/appEXPOSE8081COPYskywalking-agent//home/app/COPY*.jar/home/app/ENTRYPOINT["java","-javaagent","/ho......
  • Java easy_trans字典绑定,Java字典注解绑定
     ================================©Copyright蕃薯耀 2022-08-31https://www.cnblogs.com/fanshuyao/ 一、引入Maven依赖基于<mybatisPlus.version>3.4.3.3</my......
  • java实现kafka生产者消费者
    参考:https://blog.csdn.net/zhengzaifeidelushang/article/details/121984379深入浅出理解kafka原理系列之:java实现kafka消费者一、pom.xml引入kafka依赖二、kafka消费......