美文网首页程序猿进化之路
各个开发阶段最流行的Java编程工具汇总

各个开发阶段最流行的Java编程工具汇总

作者: 编程说书酱 | 来源:发表于2017-08-15 14:56 被阅读52次

    仅仅因为编程工具是最流行的并不意味着它是“最好的”。最好的总是和具体的编程内容相关。不过,人气,不可否认是选择同类工具时的重要指标。这并不是说流行本身会增加工具的价值;价值在于资源和来自于社区的支持。

    流行的工具更易于学习Java,因为有如此多的人可以帮助你使用它们。并且流行的开源工具,往往bug较少,因为有更多的目光都集中在代码上,有更多的人在大范围的场景中测试它。

    所以,虽然总有像Apache和Nginx这样的对位工具——两web服务器:Apache被更多的网站使用,但Nginx更多的是被web上的顶级站点使用,这意味着它被一些最好的工程团队所使用——在很多情况下,知名度可以成为工具之间的关键区别。

    名单涵盖了绝大多数你在开发Java应用程序时所需工具的重要内容。里面有最流行的工具“冠军”,涵盖了各个类别,此外还有来自于大型Java社区调查证明其地位的在一些背景和引文下稍逊一筹的“亚军”工具。Java初学者应该看一看所有这些顶级工具以便于更了解这个生态系统。

    语言版本

    冠军:Java8

    亚军:Java7

    Java8有可能是迄今为止最快被采用的新版本了。这可能是因为一些期待已久的现代语言功能如lambda表达式,减少了一些Java经常被批评的冗长程度。性能的提升也是很大的一个卖点。

    虽然现在新的Javaapp和主要的app是用Java8写的,但是还有大量现有的Javaapp仍然使用的是Java7或6。

    我不会趟进JavaEE与Spring之间的竞争,因为相关的统计数据总是存在争议,但是两者在用户数量上似乎相当接近。大约三分之一的开发人员在使用其中之一的同时还是用了另外一个。

    编辑器和IDE

    冠军:(存在争议)Eclipse和IntelliJIDEA

    亚军:Netbeans

    Eclipse和Netbeans都是免费和开源的。Eclipse因其大型的社区和插件(很容易写)的富有而闻名,这使得该平台可无休止地扩展,但有时会加载缓慢和繁琐。Netbeans因包括如Maven和Git的整合开箱即用而显得与众不同。IntelliJ具有商业产品的性能和完美。它有免费和付费两种版本。

    web框架

    冠军:AngularJS,SpringMVC

    亚军:JavaServerFaces(JSF)

    虽然三分之二的调查显示了SpringMVC优于JavaServerFaces(JSF),但是来自于DZone大型投票(图5)显示SpringMVC和JSF之间的打成了平手。这可能已经没有多大关系了,因为JavaScript框架在许多流行的web堆栈中变得越来越有价值。一项问及AngularJS与纯JavaWeb框架使用率比较的调查显示,在前端上,AngularJS优于最流行的Java框架。

    应用服务器

    冠军:Tomcat

    亚军:Wildfly

    Tomcat已经很多年担任最常用Java应用服务器的称号了。它轻巧,不会尝试实现所有的JavaEE规范。在一些调查中,Jetty,另一个轻量级的应用服务器,领先于Wildfly——顶部JavaEE——支持的应用程序服务器。Tomcat是简单Java应用的领导者,而轻量级的应用服务器毫无疑问是微服务架构的首选。

    测试框架

    单元测试

    冠军:JUnit

    实际上的Java单元测试框架。

    Mocking

    冠军:Mockito

    显然是Javamocking框架中的最爱。

    自动化web浏览器测试

    冠军:Selenium

    Selenium不过是自动化了浏览器。开发人员通常与测试框架一起使用这个工具来做大规模

    的web应用程序测试。

    行为驱动开发测试(BDD)

    冠军:Cucumber-JVM,Spock

    Cucumber原本是一个Ruby项目,但现在具有针对每一种主要编程语言的实现。Spock支持JVM语言Groovy和Java。它还可以处理很多Mockito能做的事情。

    版本控制系统

    冠军:Git

    亚军:Subversion

    请记住,Git比只用GitHub及其约定的版本控制更灵活。Git似乎已经几乎打赢了版本控制的战役,大多数的Subversion和CVS用户被开发人员抓进了一套遗留的工具中。

    持续集成

    冠军:Jenkins

    亚军:NoCIserver

    这是另一个有着明确领导者的领域。Jenkins的灵活的插件系统,导致其在过去的五年时间里,逐渐上升到主导地位。不使用任何CI server的人比使用任意单一Jenkins竞争者的人要多。最接近的竞争者是Bamboo。

    数据库

    冠军:OracleDB

    亚军:MySQL

    选择数据库相比这里的许多其他工具,更依赖于上下文。根据你要构建的app,你可能需要一个轻巧的key-value存储,以及一个巨大的列式数据库。对于大多数应用程序,关系数据库可以把这工作做好,这就是为什么你会看到两个关系型数据库站到Java工具世界之巅的原因。

    Oracle是这篇文章中提到的少数商业产品之一,这意味着它有很多的“企业”特点。MySQL或甚至SQLite是开源的强大选择。

    对象关系映射(ORM)

    冠军:JavaPersistenceAPI(JPA)/Hibernate

    亚军:JavaDatabaseConnectivityAPI(JDBC)

    Hibernate是如此受欢迎,若干年前它得到了JavaPersistenceAPI规范的标准化。

    静态代码分析

    冠军:FindBugs

    亚军:SonarQube

    这两个工具都在范围上有很大的不同,因此很难比较。FindBugs是一个简单的静态代码分析工具,而SonarQube是一个用于代码质量分析,语法检查和代码度量的完整平台。

    语法检查

    冠军:Checkstyle

    亚军:Eclipse

    此功能可以在主要的javaide中找到,但如果你需要一个单独的程序用于专门的语法检查(又名“linting”),Checkstyle是一个不错的选择。

    工件管理

    冠军:SonatypeNexus

    亚军:JFrogArtifactory

    许多开发人员在版本化JAR,WAR,库和完整的app时不使用工件仓库。但是,如果他们这样做的话,Nexus有用户优势。两者都是商业产品。ApacheArchiva是一个开源选择。

    依赖注入

    冠军:SpringFrameworkDI

    亚军:GoogleGuice

    Spring框架在依赖注入上做的很好,但谷歌的开发者用Guice也创造了一个流行工具。Dagger没有那么普及,但它很新,并且用户在增加,特别是围绕Android开发。它被用于PokémonGo。

    性能分析/分析器

    Java分析

    冠军:VisualVM

    亚军:Noprofiler

    显著数量的Java开发人员不使用任何分析器。YourKit是VisualVM另一个流行的替代分析器。

    负载测试

    冠军:JMeter

    亚军:LoadRunner

    除了这两个之外,还有大量各种负载测试工具,所以一定要研究这个市场。JMeter是开源的,而LoadRunner是商业产品。商业产品的主要优点是运行测试的云服务范围。

    自动化构建与依赖管理

    冠军:Maven

    亚军:Gradle

    虽然Maven明显领先,但Gradle仍然被广泛用作辅助构建工具,并且是Android的标准构建工具。

    日志库

    冠军:log4j

    日志库的亚军还不清楚,因为在这个工具类上较少有研究。这篇文章给出了围绕Java流行的日志库和设置问题。

    动力节点针对上班族,在校生,自学者开设了Java直播课堂(夜校班),由大咖直播授课,学员在业余时间学习,为没有时间全日制面授的学员打开通往Java工程师之路的大门。Java夜校班由动力节点副教学总监,金牌讲师付老师带队并亲自授课,夜校班秉承动力节点一贯的专业品质态度,在课程质量,学生素质,就业服务上相当严格要求,并以学业满意就业为终极目标,打造国内一流Java业余培训班,感兴趣的同学不妨关注动力节点了解一下吧。

    a�[_�*5

    相关文章

      网友评论

        本文标题:各个开发阶段最流行的Java编程工具汇总

        本文链接:https://www.haomeiwen.com/subject/cgxvrxtx.html