Java开发相关工具

jopen 10年前

开发工具:最好的Java IDE肯定是JetBrains的IntelliJ IDEA,没有之一。 有米的同学直接上Personal License,没米的弄个社区版,也可以凑活着用。相信我,一旦你用了这个IDE,你就离不开它了。 

构建工具:Ant 和Maven的时代已经过去,Gradle(http://www.gradle.org/)已经是目前的标准了,其极其强大,易用,灵活,表现力强。当然不得不提的是,如果没有Maven的依赖管理系统,其基本也废。从Maven, Ant切换到Gradle都很方便。我的同事写过一篇文章:http://dreamhead.blogbus.com/logs /227427912.html 推荐它,我的另外一个同事还分享过一篇关于Gradle的具体应用的文章:(http://www.infoq.com/cn/articles /Gradle-application-in-large-Java-projects)。 

部署工具:Cargo(http://cargo.codehaus.org/Quick+start):开发Web应用时,打包,部署到服务器上一气呵成。和Gradle结合使用,效果更佳。本来build pipeline里就应该有部署一说的。 

写代码时,可以考虑使用的类库,这些类库会极大的减少你的代码量并且能够增强你的代码表现力: 

Guava(https://code.google.com /p/guava-libraries/):Google的工程师为大家写的通用库,里面有关于collections,caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等,基本上,我个人已经把Collections的所有函数都转换到使用Guava的函数了,从此腰不疼,腿也不抽筋了。因此,把Guava看做 JDK的一部分应该都不为过。 

* Joda-Time(http://joda-time.sourceforge.net/):JDK中不管是Date,还是Calendar,其之难用,天理难容,需要使用Java时间函数的同学请使用这个类库里的时间。你会感谢我的。 

SLF4J + Logback(http://www.slf4j.org/): 日志二人组,Logback成功小三上位,以性能的优势挤掉log4j,成为和slf4j的第一搭档。 

Junit + Fest Assertion(https://github.com /alexruiz/fest-assert-2.x):单元测试二人组,同样的,Fest也是小三上位,以其更具表现力的API获得众多码农的青睐。其实,原配hamcrest也可以通过定制自己的Matcher达到同样的效果,只是程序员都挺懒的,是吧。 

make-it-easy(https://code.google.com/p/make-it-easy/): 写测试的时候,经常需要构建一些复杂的Object,尤其是一些继承结构复杂的对象,为每个对象写Builder会产生大量的重复代码,因此,Let's make it easy。 

Sonar(http://www.sonarqube.org/) + checkstyle(http://checkstyle.sourceforge.net/) +Findbugs(http://findbugs.sourceforge.net/): 代码质量检测3人组,最好是能够把多个项目组的sonar dashboard投到一面墙上,Shame on low code quality team!代码质量是程序员的自尊心啊。 

moco(https://github.com/dreamhead/moco):写测试时,遇到和外部项目的依赖时,还在一步一步的Mock吗?试试moco吧,分分钟给你一个你期望的服务器。 

Jbehave or Cucumber : 自从《Specification by Example》大红之后,BDD开始走上潮流,Jbehave和Cucumber就是Java世界的BDD框架,JBehave属于Java世界的亲生孩子,功能强大,同时也相对复杂一点。Cucumber是在Ruby世界大红之后,移植到Java世界的。个人只用过JBehave,表示其不算复杂,就是类的继承关系有点太乱。