Java Tools for Extreme Programming: Mastering Open Source Tools Including Ant, JUnit, and Cactus
Learn how to transform XP theory into concrete Java® development techniques! Software developers live by the mantra, "evolve or die". Adhering to that philosophy, Richard Hightower and Nicholas Lesiecki present you with an innovative book about Extreme Programming (XP) a development methodology that enables developers to build flexible, high-quality software in a quick, efficient, and cost-effective manner.
This book teaches you how to implement XP in Java using open source Java XP development tools and how to master the most difficult part of the XP process: testing, integration, and deployment.
Written with experienced Java developers in mind, this book begins with a brief introduction to XP methodology and techniques, and then dives into a sample application used throughout the rest of the book to provide a real-world view of the tools and development practices in action. The authors provide concise descriptions of the key concepts behind each tool, offering code examples and step-by-step tutorials to guide readers to mastery of the technical aspects of XP development.
Review By: Jessica McLaughlin
07/09/2010
Within the first two pages of this book, the authors state that the content assumes the reader is a moderately experienced Java programmer. Take this to heart. Much of the material is highly technical and meant for very experienced programmers.
The book is organized into three parts. The first part introduces the reader to the concepts of eXtreme Programming (XP), the J2EE build and deployment model and the sample applications that are used throughout the book. The second part instructs developers on the different tools available for building, testing, deploying, and refactoring Java code. The third part is a reference section, which includes the details of the API’s covered in the book.
The first chapter of this book is an excellent introduction for the reader who is unfamiliar with the principles or practices of XP. The author uses his own experiences to show the reader how these principles and practices can work in real life. One particular quote will bring a smile to anyone in QA or Software Testing, “I soon realized that certifying the testing of every line of code caused us to write some extremely clean code.” You’ll find it on page 4.
The author offers instructions on how to download all of the open source tools discussed in the book. There is also a website on which the reader can download example code and updated build instructions. This is invaluable to the reader who wants to work along with the book.
The writing style of the book is also quite technical, so even the chapters that deal with functional or performance testing may be difficult for the unseasoned Java programmer or tester. Once past the first few chapters, there are not many anecdotes or stories- just pure how-to instructions on using the tools. It is not the type of book one can quickly skim through and understand.
This book is a wonderful reference for experienced Java programmers. As a tester, however, the book was too technical for my understanding. I was unable to work through the examples or case studies because of my inexperience.
But, the concepts are completely understandable for all readers. The open source tools discussed in the book assist in the different types of testing that are vital for a quality product: unit testing, integration testing, functional testing, and performance/load testing. While that concept may be obvious to someone in Quality Assurance or testing, I think the book does an excellent job showing developers how to run and automate all of these types of tests using the open source tools. If these tests are done while the coding is in process, then the code can be refactored until it passes specific test criteria.
The authors also do a wonderful job explaining the importance of automating tests, having a good build process, and using continuous integration. They suggest testing the code daily. If we are to do this, then automation is a must. The tools discussed in the book will allow developers to do this well.
While my team is not currently using XP, I still plan to utilize some of the concepts from this book. I hope to help implement a better build process and automation of unit tests so more and more defects are found before the code ever comes to me for validation.