Most Helpful Customer Reviews
|
|
9 of 12 people found the following review helpful:
5.0 out of 5 stars
How to formalize the Java software design lifecycle, May 10, 2008
I really liked this book. It is modeled after the very useful "Unix Power Tools" that was first published 15 years ago. Since Java was first introduced it has grown from a simple web page enhancement language to one that does all kinds of useful computing work. The proliferation of tools and acronyms that have grown up around it have been quite frustrating to me. Usually you are faced with a book about a particular tool and having to decide if this entire book is worth opening your wallet. Instead, this book is organized around tasks and then goes into detail on what tools you need to do the job. There is plenty of detailed technical information on how to use the tool and why to do things a particular way. The book is organized as follows:
Build Tools - Used to coordinate, federate, and binds the other SDLC (Software Design Lifecycle) tools together into a single, coherent process. The build tool ensures that your project can be built on any machine, in any environment, if possible. Two tools dominate this area, and both are examined. The first is Ant, the traditional Java build tool, which uses a straightforward procedural approach and benefits from a very large user base and a rich set of extensions. The second is Maven 2, which uses a powerful, declarative approach to project build management and goes much further than being a simple build tool.
Version Control Tools- A version control system provides critical backups of your source code and enables developers to work together on the same project without interfering with one another. Version control systems also allow you to identify versions and coordinate releases and (if necessary) rollbacks. CVS and Subversion are the tools covered.
Unit Testing - Correct unit testing helps ensure that your code works and fosters cleaner, more modular, and better designed code. Automated unit testing takes this a step further. By simply integrating your unit tests into your standard build process, and running them automatically with every build, you can go a long way toward increasing the quality and reliability of your code. Test coverage tools help you check how much of your application is actually being executed during your unit tests. This in turn helps you identify untested code and improve the overall quality of your tests. JUnit 4, TestNG, and Cobertura are the tools covered here.
Integration, Load, and Performance Testing - This section examines other testing techniques such as integration, load and performance, and user interface testing. All of these are important, and all can benefit from being integrated into the build process. This section illustrates how to integrate performance tests into your unit tests, how to load-test your application, and how to automatically test web services as well as your web interfaces and the functioning of your Swing apps.
Quality Metrics Tools - It is important to be able to measure the quality of your code in objective terms. Code quality has a direct bearing on the number of bugs and the ease of maintenance later on. Code quality metrics will make inexperienced developers familiar with coding conventions and best practices. This section looks at a range of automated tools that measure different aspects of code quality, including CheckStyle, PMD, FindBugs, and Jupiter.
Technical Documentation Tools - A significant part of documentation can be generated automatically from source code and comments. This section describes tools that can help you generate good technical documentation.
Issue Management Tools - Issue tracking systems are used by testers to uncover bugs and by developers to document bug fixes. They can also be used to help organize and document releases, to plan iterations, and to assign work tasks to team members. The first tool discussed is Bugzilla, the original open source issue tracking system. The second is Trac, which contains some innovative project management and wiki features.
Continuous Integration Tools - In software development, the longer you wait to integrate your code, the more difficult the task becomes. Continuous Integration is based on the idea that you can greatly facilitate this process by committing small changes regularly, and then running automatic builds whenever code changes are committed. All of the tools and techniques discussed so far can benefit from being run automatically on a regular basis. Although this sort of integration is certainly possible with a shell script and a cron job, nowadays there are a lot of new tools that can save you a great deal of time and effort in this area. This section examines the open source tools of Continuum, CruiseControl, LuntBuild, and Hudson.
This book is not really tailored for managers looking for overviews. It is for programmers looking for solutions. Highly recommended.
|
|
|
2 of 2 people found the following review helpful:
5.0 out of 5 stars
Complete Reference for 30 Open Source Tools, May 25, 2008
The book is enjoyable, extremely well organized and covers a wide range of open source tools needed for any successful software development life cycle. I would recommend Java Power Tools to anyone writing Java. My only complaint is the size of the book; but I think in order to cover 30 tools , and the breadth of material covered for each of these tools do make up for its weightiness.
This book is written with a Java developer audience in mind. I should however say that Java is not actually the main focus of the book, and I believe this book would be of great interest to anyone concerned in writing better software.Readers should have a basic knowledge of Java and XML. You don't need to have any prior experience with any of the tools covered.
Java Power Tools can be used as an introduction to various technologies and also as a complete and easy-to-use reference work. After having read and reviewed numerous book over the past 5 years, I think it safe to say I have not read another text that so well combines the best attributes of both.
|
|
|
6 of 8 people found the following review helpful:
5.0 out of 5 stars
Automate your development process!, May 16, 2008
To begin, I should note that I was a technical reviewer on this book. Ever since I reviewed it last year, I've been telling everyone who would listen that "Java Power Tools" was going to be one of the best books to be released in a while. If you are on a Java development project, you must have this book! I'm still amazed by the breadth and depth of the information in it. As it states in the back of the book, it's like having 30 reference books all in one. And, it's not like John simply gives a high-level overview of the tools. He goes into great detail such that you can take the examples and use on your own projects. The beauty is that he has weeded out all of the bad tools and given a concise set of tools to immediately help improve your team's productivity. What's more, they're all open source and you can download them immediately and try them out. He covers all of the major tool types in the development process including version control, build, CI, issue management, testing, code metrics, etc. "Java Power Tools" helps you automate your own development processes. If you'd rather be spending time creating software and not bending your process or tools to meet your needs, this is the book for you.
|
|
|
Most Recent Customer Reviews
|