文档章节

5款工具助你写出更好的Java代码

断桥是否下过雪
 断桥是否下过雪
发布于 2014/02/21 16:36
字数 1048
阅读 394
收藏 38

摘要:工欲善其事,必先利其器。一名优秀的开发者手里肯定握着不少秘密武器,本文开发者分享了他在开发Java项目时,所用到的5款有助于提高代码质量的工具。

   在本文,将介绍5款在IDR解决方案的(开发语言为Java)中,最常用也最实用的工具给Java开发人员,希望它们帮你开发出更好的代码。

1.FindBugs

顾名思义,FindBugs是一款帮助开发者发现bug的工具,它是一个开源项目,遵循GNU公共许可协议,运行的是Java字节码而不是源码。

它是一款静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比来发现可能存在的问题,这些问题包括空指针引用、无限递归循环、死锁等。

FindBugs在发现错误后,会进行等级划分,它把发现的错误分为四个等级:

 

  1. scariest(恐怖的)

  2. scary(吓人的)

  3. troubling(令人困扰的)

  4. of concern(值得关注的)

 

FindBugs是一个独立的GUI应用程序,有多种使用方式,可以作为Eclipse、NetBeans、IntelliJ IDEA插件使用,也可以从命令行、Ant、Maven使用。

2.Apache Ant

Apache Ant是由Apache软件基金会所提供的一款开源软件,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,主要用于Java环境中进行软件开发,它还可以用于构建C或C++应用程序,也可以针对目标任务运用在多种软件开发过程上。

Apache Ant有大量商用或开源的“antlibs”供大家使用,它非常灵活,因为他对编码约定或目录布局都是没有任何限制的。Apache Ant被广泛运用在各种Java IDE环境中,如Eclipse、NetBeans、IntelliJ IDEA等。

3.JProfiler

JProfiler是一个商业授权的Java剖析工具,由EJ技术有限公司开发,主要是针对Java EE和Java SE应用程序使用。它把CPU、内存和线程分析析组合在一个强大的应用中,从而可以用来分析性能瓶颈、内存泄漏、CPU负载以及线程问题。

JProfiler支持多种剖析模式:本地会话实时分析模式、远程会话实时分析模式、离线分析模式、快照比较、查看HPROF快照。此外,JProfiler既可以作为单独的应用程序使用,也可以作为一个插件使用,也可以在Adobes Coldfusion和Glassfish中作为应用服务器集成的一部分。

4.Bash

全称是Bourne-Again SHell,发布于1989年。它是一个Unix shell或命令式语言解析器,它作为GNU项目,是Bourne shell的一个免费替代。它在GNU操作系统上作为shell被广泛运用,它已是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

它通常被用作一个命令处理器,通常运行在一个文本窗口,它还可以从文件中读取各种命令、支持通配符的文件名、piping、命令替换、变量、控制结构等用来进行条件或迭代测试。

5.Sonarqube

Sonarqube是一个开源平台,是一款代码质量管理和环境搭建工具。它目前支持25种以上语言,包括Java、C/C++、C#、PHP、Flex、JavaScript、Python、PL/SQL、COBOL等,此外,它还可以作为Android开发的一部分。

它提供了完全自动化的分析工具,并且可以与Maven、Ant、Gradle和其它集成工具很好地集成,也可以与Java IDE进行很好的集成。它还可以用于报告重复的代码、编码标准、单元测试、代码覆盖率、复杂的代码、潜在的bug、评论、设计和架构。


本文转载自:http://lansebingmou.diandian.com/page/2

共有 人打赏支持
断桥是否下过雪
粉丝 1
博文 8
码字总数 856
作品 0
广州
程序员
私信 提问
5 款用来开发 iOS 应用的 Java 开源工具

苹果iOS系统的封闭性一直广为其他语言(如Java)开发者诟病,但随着第三方工具的不断壮大,开发人员逐渐摆脱政策束缚,开始使用自己熟悉的语言来编写iOS本地应用,或将其他平台上的应用移植到...

oschina
2013/03/29
7.4K
15
Go 摆脱了 C,又惹上了 Java?

talks.golang.org 前几天放出了 PPT《Go in Go》和 《The State of Go》讲解最近 Go 的开发动态和成果: 随着 Go 1.5 版本的开发,现在整个系统都是使用 Go 编写的(有一小部分汇编) C 已经...

oschina
2015/05/29
41.9K
192
Java 8里面lambda的最佳实践

Java 8已经推出一段时间了,越来越多开发人员选择升级JDK,这条热门动弹里面看出,JDK7最多,其次是6和8,这是好事! 在8 里面Lambda是最火的主题,不仅仅是因为语法的改变,更重要的是带来了...

OSC闲人
2015/04/30
0
41
7 款开源 Java 反编译工具

今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。尤其是像.NET、Java这...

wwwmmm
2014/09/24
8K
0
6 个 Java 项目的 UML 反向工程工具

将 Java 项目转成结构清晰的 UML 类图,可以让我们更轻松的理解项目的结构以及模块间的依赖关系。本文介绍 6 款开源的工具,可以将 Java 项目反向工程到 UML 的类图。 1. Eclipse MDT 模型开...

oschina
2012/09/12
20.4K
9

没有更多内容

加载失败,请刷新页面

加载更多

js 写文件

//写文件function doSave(value, type, name) {    var blob;    if (typeof window.Blob == "function") {        blob = new Blob([value], {type: type});    }......

重城重楼
13分钟前
1
0
Ubuntu and Apache 搭建 Let's Encrypt SSL Https

本文参考来着来自https://www.howtoing.com/install-free-lets-encrypt-ssl-certificate-for-apache-on-debian-and-ubuntu 感谢作者的分享 本事例环境介绍 ubuntu (Version 16.04.1 LTS) ubu......

罗培海
16分钟前
8
0
如何优雅的使用RabbitMQ

目录 RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具。消息队列的使用场景大概有3种: 1、系统集成,分布式系统的...

编程SHA
19分钟前
1
0
阿里开发者们的第19个感悟:Simple is better.

1月16日,Simple is better.这是我们送给开发者的第19个感悟。 Mars,基于矩阵的统一计算框架。已经开源。那么:Mars 是什么,能做什么,怎么做的;Mars 如何分布式地执行等。可以与继盛多交...

阿里云官方博客
20分钟前
2
0
StringBuffer 和 StringBuilder 的 3 个区别

StringBuffer 和 StringBuilder 它们都是可变的字符串,不过它们之间的区别是 Java 初中级面试出现几率十分高的一道题。这么简单的一道题,栈长在最近的面试过程中,却经常遇到很多求职者说反...

Java技术栈
23分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部