选择精确 工具和框架的紧张 性「 选择精确 工具和框架的紧张 性是什么」
【IT培训网cnitedu.cn】就由于 某个工具是最盛行 的,并不意味着它就是“最好的”。在编程范畴 ,什么是最好的取决于具体 环境 。然而,在一批雷同 的工具当中选择时,人气或受欢迎 程度 无疑是个紧张 的衡量 标准 。倒不是人气本身 增加 了工具的代价 ,而是说某个工具的更巨大 社区带来了更丰富的资源和支持。
盛行 的工具更轻易 上手,由于 有很多 人可以资助 你利用 它。而盛行 的开源工具每每 代码错误较少,由于 有更多双眼睛盯着代码,更多的人在数量 更多的场景下测试代码。
本文涵盖了你在开辟 Java应用程序时必要 的大部分 紧张 工具,包罗 每个种别 ,提供了最盛行 的工具,还提供了“次盛行 的工具”,并附有一些配景 先容 和来自Java社区观察 的弁言 ,证明 了这些排名。Java初学者应看一下全部 这些顶尖工具,进一步认识 整个生态体系 。
语言版本
最盛行 的:Java 8
次盛行 的:Java 7
固然 如今 新的Java应用程序和重要 的应用程序是用Java 8编写的,但大量现有的Java应用程序依然利用 Java 7或6。
我不会比力 Java EE和Spring孰优孰劣,由于 这方面的统计数字始终存在争议,而两者的用户数量 好像 半斤八两 。利用 此中 一种语言的约三分之一的开辟 职员 同时还利用 另一种语言。
编辑器或IDE
最盛行 的:Eclipse和IntelliJ IDEA(存在争议)
次盛行 的:Netbeans
Eclipse和Netbeans都是免费、开源的。Eclipse以巨大 的社区和丰富的插件(易于编写)而家喻户晓,这让Eclipse平台具有无比强大 的扩展性,但是载入速率 迟钝 、偶然 比力 鸠拙 。Netbeans的差别 之处在于连合 了一些特性,比如 默认环境 下就与Maven和Git整合起来。IntelliJ拥有贸易 产物 的那种性能和成熟。它有免费版和收费版。
Web框架
最盛行 的:AngularJS和SpringMVC
次盛行 的:Java Server Faces(JSF)
固然 三分之二的观察 表现 Spring MVC比Java Server Faces(JSF)更有上风 ,但DZone的大规模观察 表现 ,Spring MVC和JSF着实 难分伯仲。这种比力 大概 不再紧张 ,由于 Java框架正在放肆 进入到很多 盛行 的web堆栈。有一项观察 扣问 AngularJS的利用 相比纯粹的Java Web框架怎样,结果 发现AngularJS在前端方面比最盛行 的Java框架更有上风 。
应用服务器
最盛行 的:Tomcat
次盛行 的:Wildfly
多年来,Tomcat不停 是利用 最广泛的Java应用服务器。它是轻量级应用服务器,并不试图实现全部 的Java EE规格。在一些观察 中,另一种轻量级应用服务器Jetty领先顶尖的、支持Java EE的应用服务器Wildfly。对简单 的Java应用程序而言,Tomcat显然是领头羊;轻量级应用服务器无疑是微服务架构方面的最佳选择。
测试框架
单位 测试
最盛行 的:JUnit
究竟 上的Java单位 测试框架。
模仿 测试
最盛行 的:Mockito
它显然是Java 模仿 测试框架中的佼佼者。
主动 化欣赏 器Web测试
最盛行 的:Selenium
Selenium可主动 化测试欣赏 器。开辟 职员 常常 连合 测试框架来利用 这个工具,举行 大规模的Web应用程序测试。
举动 驱动开辟 (BDD)测试
最盛行 的:Cucumber-JVM和Spock
Cucumber早先 是个Ruby项目,但是如今 已支持各大编程语言。除了Java外,Spock还支持JVM语言Groovy。它还能处理 惩罚 Mockito能处理 惩罚 的大部分 工作。
版本控制体系
最盛行 的:Git
次盛行 的:Subversion
记取 :Git比仅仅利用 GitHub及其版本控制约定来得活。Git好像 根本 上赢得了版本控制大战的胜利,而大多数Subversion和CVS用户是只好利用 一套遗留工具的开辟 职员 。
连续 集成
最盛行 的:Jenkins
次盛行 的:暂无
这是显然存在领头羊的另一个方面。在已往 的五年间,Jenkins机动 的插件体系 让它渐渐 成为霸主。不利用 任何连续 集成服务器的人比利用 Jenkins的任何一个竞争对手的人要多。气力 最靠近 的下一个竞争对手是Bamboo。
数据库
最盛行 的:OracleDB
次盛行 的:MySQL
你在选择数据库时比本文先容 的其他很多 工具更依靠 具体 环境 。除了巨大 的列式数据库外,你大概 还必要 轻型的键值存储数据库,这取决于你在构建的应用程序。对于大多数应用程序来说,关系数据库仍能满意 要求,这就是为什么你看到两种关系数据库跻身Java工具榜单的火线 。
Oracle是本文中为数不多的贸易 软件之一,这意味着它有很多 “企业级”功能。假如 你偏幸 开源,MySQL或乃至 SQLite是公道 的选择。
长期 API及/或对象关系映射(ORM)
最盛行 的:Java长期 API(JPA)/hibernate
次盛行 的:Java数据库毗连 API(JDBC)
Hibernate太盛行 了,几年前就在Java长期 API规范当中实现了标准 化。
静态代码分析
最盛行 的:FindBugs
次盛行 的:SonarQube
这两个工具的范围大不一样,以是 很难比力 。FindBug是一个较简单 的静态代码分析工具,而SonarQube是个完备 的平台,可用于代码质量分析、语法查抄 和代码度量。
语法查抄
最盛行 的:Checkstyle
次盛行 的:Eclipse
重要 的Java IDE都有这项功能,但是假如 你必要 专门用于语法查抄 的另一个程序,Checkstyle倒是个不错的选择。
工件管理
最盛行 的:Sonatype Nexus
次盛行 的:JFrog Artifactory
很多 开辟 职员 并不利用 工件库对JAR、WAR、库和整个应用程序举行 版本管理。但是他们在这么做时,Nexus更受用户的青睐。两者都是贸易 软件。Apache Archiva是个开源工具。
依靠 注入
最盛行 的:Spring Framework DI
次盛行 的:Google Guice
Spring框架在依靠 注入方面做得不赖,但是谷歌的开辟 职员 也开辟 了一款盛行 的工具:Guice。Dagger 的人气比不上两者,但它是新工具,用户越来越多,尤其是在安卓开辟 方面。热门游戏《Pokémon Go》用的就是它。
性能分析
Java分析
最盛行 的:VisualVM
次盛行 的:暂无
为数不少的Java开辟 职员 并不利用 任何性能分析工具(大概 将性能题目 交给差别 的团队去思量 )。YourKit是更换 VisualVM的另一种盛行 的工具。
载入测试
最盛行 的:JMeter
次盛行 的:LoadRunner
除了这两款工具外,尚有 一大批的载入测试工具,以是 务须要 调研这个市场。JMeter是开源工具,LoadRunner是贸易 产物 。贸易 产物 的重要 长处 是它为在云端运行测试提供了浩繁 服务。
构建主动 化和依靠 管理
最盛行 的:Maven
次盛行 的:Gradle
固然 Maven是显着 的领头羊,但是Gradle依然利用 广泛,是一种仅次于Maven的构建工具,它还是 安卓平台的标准 构建工具。
日记 库
最盛行 的:Log4j
日记 库方面的次盛行 工具并不明白 ,由于 这个工具种别 方面开展的研究比力 少。