以下这些工具,从代码构建到错误挤压,覆盖Java开发的全域。学习这些工具可以帮助你改善代码质量,成为一个更高效的Java开发人员。Java这个大世界中正在不断涌现新的工具、实用程序和库。如果你的首选工具没能进入上述名单,欢迎分享。
1
集成开发环境Eclipse
尽管IntelliJIDEA、NetBeans和一些其他的IDE正在日益普及,但是有调查表明,Eclipse仍然是几乎半数Java开发人员首选的开发环境。Eclipse是IDE领域的瑞士军刀,有着大量定制的接口和无数的插件。它无处不在,后面本文将推荐的其他所有工具都提供Eclipse插件。
Eclipse的工作流程可分为三个方面:工作台,工作空间和视角。工作台作为到IDE的出发点。工作空间将项目、文件和配置设置组合在一个单独的目录下。视角定义工具、视图和有效设置。虽然新手开发人员可能会觉得相比Netbeans和IntelliJIDEA,Eclipse使用起来更难,但Eclipse的灵活性,使其成为企业开发的首选IDE。
2
Groovy构建工具Gradle
Gradle就是可以使用Groovy来书写构建脚本的构建系统,支持依赖管理和多项目,类似Maven,但比之简单轻便。
虽然Gradle并不是最流行的构建工具(最流行的是Maven,64%的Java开发人员会选择它),但它的普及速度很快。它也可以作为默认的Android构建工具。
以上是Gradle的构建文件build.gradle中的内容,是不是比Ant的build.xml要简单太多了?这就是“惯例”的力量。由此,我们可以了解Gradle的第一个特点:“CoC(惯例优于配置)”。只要按照Gradle的惯例,那么可以最大限度的减少build文件的内容。
3
Java单元测试框架JUnit
JUnit是一个Java语言的单元测试框架。它由KentBeck和ErichGamma建立,逐渐成为源于KentBeck的sUnit的xUnit家族中为最成功的一个。JUnit有它自己的JUnit扩展生态圈。
多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
4
代码覆盖率检查工具Cobertura
Cobertura是一种开源工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码和没有执行哪些代码,来测量测试覆盖率。除了找出未测试到的代码并发现bug外,Cobertura还可以通过标记无用的、执行不到的代码来优化代码,还可以提供API实际操作的内部信息。ElliotteRustyHarold将与您分享如何利用代码覆盖率的最佳实践来使用Cobertura。
下图是Cobertura的输出结果
5
Java代码Bug分析插件FindBugs
FindBugs是一个能静态分析源代码中可能会出现Bug的Eclipse插件工具。它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。当提供源代码时,FindBugs还可高亮显示检测出bug的代码。
6
Java程序性能分析工具VisualVM
VisualVM是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分析线程信息,浏览内存堆数据。系统管理员可以利用它来监测、控制Java应用程序横跨整个网络的情况。Java应用程序使用人员可以利用它来创建包含所有必要信息的Bug报告。
7
JVM动态脚本语言Groovy
Groovy是一种基于JVM的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性。
Groovy主要的特点包括:
是一个基于Java虚拟机的敏捷动态语言。
构建在强大的Java语言之上并添加了从Python,Ruby和Smalltalk等语言中学到的诸多特征。
为Java开发者提供了现代最流行的编程语言特性,而且学习成本很低(几乎为零)。
支持DSL(DomainSpecificLanguages领域定义语言)和其它简洁的语法,让你的代码变得易于阅读和维护。
Goovy拥有处理原生类型,面向对象以及一个AntDSL,使得创建ShellScripts变的非常简单。
在开发Web,GUI,数据库或控制台程序时通过减少框架性代码大大提高了开发者的效率。
支持单元测试和模拟(对象),可以简化测试。
无缝集成所有已经存在的Java对象和类库。
直接编译成Java字节码,这样可以在任何使用Java的地方使用Groovy。
8
JUnit
JUnit是用于编写和运行单元测试的开源框架。一个基本的JUnit测试包括测试类、测试方法、以及执行测试的功能。JUnit使用标注来确定测试如何构造和运行。例如,如果你的程序有一个类叫做MathClass,具有乘法和除法的方法,你可以创建JUnit测试来检查不符合预期的值。输入数字2和5到乘法方法,你希望得到的结果为10。当输入0作为除法方法的第二个参数时,你会期望给出一个数字计算异常的警告因为除数不能为0:
Test标注规定,MathClass方法是一个测试用例。在JUnit提供额外的标注,比如Before,这样你就可以在测试运行之前设置环境。JUnit还可以设置规则用于定义测试方法的行为。例如,TemporaryFolder规则使得一旦测试完成,由测试创建的文件或文件夹就会被删除。9
Javadoc
Javadoc是Oracle提供的文档生成器。它可以将特殊格式的注释解析为HTML文档。以下截图就是Javadoc生成的JavaSE8API规范:
Javadoc注释使用开放标签、关闭标签,以及一个或多个描述性标签的格式。开放式标签类似于标准Java多行注释标记,使用两个星号的除外。Javadoc也解析普通的HTML标签。
Javadoc自动格式化标签和关键字,除非另有规定。Javadoc广泛使用超链接,允许你参考和链接到代码的不同区域。许多IDE——包括Eclipse——可以自动添加Javadoc注释模块到变量、类和方法中。支持Maven、Gradle和Ant的插件在编译代码的同时也可以构建JavadocHTML。
赞赏