|New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About| |
Keywords: Java, development tools, Title: Java Power Tools Author: John Ferguson Smart Publisher: O'Reilly ISBN: 0596527934 Media: Book Level: Intermediate/Advanced Verdict: Highly recommended |
An IDE is only the first and most obvious component of a complete development environment. There are build tools, source control, unit testing frameworks and a whole bunch of other tools that together make up the software development eco-system. It is this diverse and interlocking set of tools that is the focus of Java Power Tools, rather than this or that IDE (NetBeans or Eclipse, for example).
Part one of the book looks at build tools, with a chapter each on Ant and Maven (the two prime contenders in the Java world). Each tools gets an in-depth run-through, from introduction, installation and use right through to support in Eclipse and NetBeans and then on to advanced topics. In effect each chapter is a complete and self-contained tutorial. There is attention paid not just to the basics, but also to how Ant and Maven fit in to the broader development life-cycle, how each can be customised and extended and what the differences and advantages are so that you can pick one if you have the choice.
Next up is a section on version control that again looks at two solutions: CVS and Subversion. Again tool gets a single chapter (though CVS only gets 20 pages compared to almost 80 pages for Subversion). There's a discussion on the history of the tools, with a clear picture of how Subversion builds on the lessons learned from CVS. As well as command-line usage, there is also coverage of IDE support from Eclipse and NetBeans. In the case of Subversion there's also discussion of additional support from things like TortoiseSVN. If you want a single, solid introduction to Subversion then this book does a good job of providing it.
For continuous integration there's a bigger choice of tools, and the book looks at Continuum, CruiseControl, LuntBuild and Hudson. Again there's a chapter on each tool and emphasis on helping you make the best choice as well as providing an introduction and tutorial.
Unit testing is focused on the big two: Junit and TestNG, with a chapter also on the Coverity unit testing coverage tool. The Junit chapter discusses the differences between versions 3.8 and 4.0, and offers a clear recommendation to go for the later if you can. Similarly the following chapter, which looks at TestNG offers good arguments for some of the advantages that it offers over Junit, particularly the earlier versions of Junit.
The later sections of the book look other testing tools, profiling and monitoring, quality metrics, static analysis tools and more. As with the other parts of the book the different tools are discussed both working standalone but also how they fit in with other tools (such as Ant or Maven). Where there's integration with an IDE it seems that there's a greater range of plug-ins available for Eclipse than for NetBeans (which is something that is surely changing, one hopes).
Overall this is a great resource. It brings together all the major pieces one would want when building a development and build environment for Java. Each of the tools that is covered is worth looking at. This isn't a book that needs to be read cover to cover, each chapter can be read standalone and provides a complete tutorial for that tool. The writing is informed and intelligent, and the what's more it doesn't simply regurgitate how-tos or very basic introductions. In short, this is deserving of a place on your bookshelf. Highly recommended.