Java开发中各个阶段常用工具汇总

发布时间:2022-01-07 11:53:56

  在整个Java项目开发过程中,有大量的工具被用于开发。在相同的阶段中,有很多工具可供选择,而且由于整个项目并不是一个人完成,因此需要大量的团队合作。所以在选择每一阶段工具的使用时,最好选择一般人都用到的,这样可以更好地完成团队合作。这篇文章将为您整理出Java开发的各个阶段常用工具。

对不同阶段的Java开发进行了概述

  Java语言版本。

  java8是当前Java编程语言版本中使用最多的。也许是因为期待已久的现代语言功能,比如lambda表达式,降低了Java常常受到批评的冗长程度。这也是一个很大的卖点。

  编辑与IDE。

  Eclipse和Netbeans是免费和开放源码的。Eclipse以其庞大的社区和插件(易于编写)而出名,这使得这个平台无限地扩展,但是有时候加载速度慢,也很麻烦。Netbeans因为包括Maven和Git这样的集成而变得与众不同。IntelliJ具有完美的商业功能。这个软件有免费版和付费版。

  网络框架。

  2/3的调查表明SpringMVC优于JavaSErverFaces(JSF),但SpringMVC与JSF却打平。由于JavaScript框架在很多流行的web协议中变得越来越有价值,所以这可能并不重要。一份调查问了AngularJS和纯Javaweb框架的使用情况,结果表明,AngularJS在前端优于大多数Java框架

  程序服务器。

  Tomcat已成为最常用Java应用服务器的头衔多年。这很简单,而且不会试图实现所有的JavaEE规范。Jetty是另一种轻量级应用服务器,由Wildfly--顶部JavaEEE--所支持的应用服务器领先。Tomcat领先于简单Java应用,而轻量级应用服务器无疑是微服务架构的首选。

  版本管理系统。

  切记,Git要比只使用GitHub和它习惯的版本控制更加灵活。Git看起来已经基本赢得了版本控制战争,Subversion和CVS的大部分用户都是由开发者所掌握的一套遗留工具。

  连续整合。

  在这个领域,有明显的领导作用。Jenkins灵活的插件系统,使得它在过去的五年中逐渐成为主流。没有使用任何CIserver的人超过了使用一个Jenkins竞争对手的人数。最近的竞争对手是班博。

  数据库

  与其它很多工具相比,选择数据库更加依赖于上下文。取决于您要构建的app,您可能需要一个轻巧的key-value存储,以及一个大型的列数据库。对大多数应用程序来说,关系数据库能够很好地完成这一工作,因此您将看到两个关联数据库站在Java工具世界的顶端。在本文中,Oracle是为数不多的商业产品之一,这就意味着它具有许多“公司”特征。MySQL或者甚至SQLite都是开放源码的强大选择。

  ORM(ORM)

  Hibernate非常流行,几年前被JavaPersistenceAPI规范标准化。

  程序静态分析。

  FindBugs是一种简单的静态代码分析工具,SonarQube是一种用于代码质量分析、语法检查和代码测量的完整平台。上述两种工具的范围各不相同,因而难以进行比较。

  文法检验

  这个特性存在于主javaide中,但是如果您需要为特殊的语法检查(也称为"linting"),Checkstyle是一个很好的选择。

  构件管理。

  很多开发者在版本化JAR、WAR、库和完整的app时不使用工件仓库。但如果是的话,Nexus具有用户优势。两个都是商品。ApacheArchiva是一个开源的选择。

  依存注入

  SpringFramework在依赖注入方面做得非常出色,但是谷歌开发人员还使用Guice创建了一个受欢迎的工具。Dagger不太流行,但是非常新,用户正在增长,尤其是围绕Android开发。这是用来制作波克曼戈的。

  绩效分析/分析器。

  Java开发人员明显地没有使用任何分析程序。YourKit是VisualVM中另一种流行的备选分析程序。

  负荷测试。

  除此之外,还有很多各种各样的负载测试工具,因此请务必检查此市场。JMeter是开放源码的,LoadRunner是商用的。商用产品最大的优势在于可以运行测试的云服务。

  自动构建和依赖管理。

  尽管Maven显然领先,Gradle还是被广泛地作为辅助构建工具和Android的标准构建工具。

  在上述的Java开发流程的不同阶段中,您在使用哪些工具?文中的一些观点来源于网络,仅供参考。

上一篇 浅析Java并发工具类在AQS实现
下一篇 【图灵干货】Java参数传递

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题