最流行的工具并不一定是“最好的”,对于开发来说,什么是最好的,取决于使用场景。然而,当选择工具时,流行程度是不可忽视的一个重要因素,并不是因为工具的流行增加了其价值,而是因为广泛使用的社区带来了无价的资源和支持。
流行的工具更容易学习,因为会有很多人乐意帮助你。如果是开源的话,麻烦就更少了。因为有更多的人在审核代码和进行测试,能考虑到更多的情况。
在很多情况下,都会有一个对立的竞争对手,比如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中的设置展开。
相关推荐
UML建模工具VisualParadigm的十大优势盘点 UML(Unified Modeling Language)是一种标准的建模语言,广泛应用于软件开发、系统设计和业务流程建模等领域。Visual Paradigm是一种功能强大且流行的UML建模工具,它...
货物管理可能涵盖货物的入库、出库、库存盘点等操作,同时支持对货物信息的分类和检索。客户管理模块可能包括客户信息的存储、查询,以及与客户的交易记录。 在开发过程中,开发者可能还使用了Maven或Gradle作为...
1. **后端框架**: 该项目可能采用了Spring Boot框架,这是一个流行的Java微服务框架,用于构建高效、模块化且易于维护的应用程序。 2. **数据持久层**: 可能使用了MyBatis或Hibernate作为ORM(对象关系映射)工具,...
2. **Swing**: Swing是Java的一个图形用户界面(GUI)工具包,提供了丰富的组件供开发者构建桌面应用程序。在仓库管理系统中,Swing用于创建用户友好的界面,如按钮、文本框、表格等,使用户能够方便地进行数据输入...
Java进销存系统是基于Java技术开发的...总结,Java进销存系统是一个基于Java技术,集进货、销售和库存管理于一体的高效软件,具备开源、文档齐全、易扩展等优点,对于企业来说是提高管理效率、优化业务流程的有效工具。
这个知识盘点涵盖了J2EE生态中的核心组件和技术,包括EJB(Enterprise JavaBeans)、Spring、Struts2、Hibernate、JavaScript以及JPA(Java Persistence API)。以下是对这些技术的详细解释: 1. EJB(Enterprise ...
2. **Swing或JavaFX**:Java提供了Swing和JavaFX两个图形用户界面(GUI)工具包,用于构建系统的前端界面,如商品展示、购物车、结账等功能的交互界面。 **数据库相关知识** 1. **JDBC(Java Database Connectivity...
总的来说,【JAVA仓库管理系统源码】是一个典型的Java后端开发项目,利用了Java的面向对象特性、数据库管理能力以及良好的模块化设计,为仓库管理提供了一套全面的工具。通过深入研究和理解这个系统,开发者可以学习...
2. Spring框架:Spring是Java领域最流行的框架之一,用于处理企业级应用的复杂性。在进销存系统中,Spring可以用来管理依赖注入、事务控制、数据访问和安全控制等方面。 3. Hibernate或MyBatis:这些是Java的持久层...
【Java 进销存 ERP 管理系统 源码】是一款基于Java技术开发的库存、销售和采购管理的企业资源计划系统(ERP)。这款系统是开发团队经过半个多月的努力,精心打造出来的成果,旨在为企业提供高效、便捷的进销存管理...
6. **Tomcat服务器**:这是一个流行的开源Java Web服务器,用于运行Servlet和JSP应用。 7. **数据库设计**:仓库管理系统通常包括库存、入库、出库、库存盘点等模块,需要设计合理的数据库表结构和关系,例如库存表...
4. **Spring框架**:一个流行的Java企业级应用框架,用于处理依赖注入、事务管理、数据访问等。Spring JDBC和MyBatis可能是系统中的数据访问层,用于简化数据库操作。 5. **Hibernate ORM**:另一种常用的Java持久...
Java是一种流行的、跨平台的编程语言,由Sun Microsystems的詹姆斯·戈斯林博士设计。它的特点是面向对象,具有高度的可移植性和安全性。Java程序在编译后生成字节码,可以在任何支持Java虚拟机(JVM)的平台上运行...
4. **Hibernate ORM**:Hibernate是一个流行的Java对象关系映射(ORM)工具,用于简化数据库操作。在本系统中,Hibernate可能被用来自动处理数据库的CRUD(创建、读取、更新、删除)操作,减少与SQL的直接交互。 5....
综上所述,这个基于Java的超市进销存管理系统充分利用了Java的技术优势,结合Maven、MySQL和Tomcat等工具,构建了一个功能完善、易于维护的业务系统。开发者可以根据实际需求进行定制和扩展,以适应不同规模的超市...
Swing是Java的标准GUI库,提供了丰富的组件和工具,用于创建桌面应用程序。在仓库管理系统中,Swing可能被用来构建如主界面、菜单栏、按钮、表格等元素,使得用户可以通过直观的图形界面进行各种操作。例如,通过...
在当今信息化时代,仓库管理系统作为企业运营中的重要一环,已经成为提升效率、降低成本的关键工具。本文将深入探讨如何使用Java技术栈构建一个WEB版的仓库管理系统,涉及的知识点包括Java Web开发、网页设计以及...
Spring Boot是Java生态系统中的一个流行框架,它简化了创建独立、生产级别的基于Spring的应用程序。这个系统的核心目标是提高医院对固定资产的管理水平,实现资产数据的信息化,从而提高工作效率,减少资源浪费。 ...
总之,“基于Spring Boot开发的医院固定资产系统”不仅是一个功能强大的资产管理工具,更是一个优秀的Java毕业设计项目范例。它不仅能够满足医院的实际需求,还能够为学习者提供宝贵的学习和实践机会,帮助他们更好...