Core J2EE Patterns: Best Practices and Design Strategies, Second Edition

The 2nd edition of the J2EE development bible, Core J2EE Patterns: Best Practices and Design Strategies is out and the authors do not disappoint. I had given the first edition of this book 5 stars as the authors of the book had taken lessons learned from their experiences in developing and deploying J2EE applications and distilled all that knowledge into fifteen different design patterns.

Even if you own the first edition, I would recommend you get the 2nd edition as original 15 patterns have been completely revised and updated, including new implementation strategies and updates relating to the changes in the J2EE specification. J2EE application development is a fairly complex process and just knowing the API does not enable you to write good software. Most people spent several years writing software and learn good design techniques with experience based on what’s worked in the past and what hasn’t worked.

Another reason to buy this book is the whole Refactoring section. The authors take Martin Fowler’s refactoring idea to the next level and bring it in the J2EE arena. I feel the price of the book is worth it, just for that section.

In addition to the 15 patterns, the authors introduce 6 design patterns to the J2EE pattern catalog. The new patterns include Context Object and Application Controller for the Presentation tier, Application Service and Business Object for the Business Tier and Domain Store and Web Service Broker for the Integration Tier.

I highly recommend this book to anyone doing any J2EE development. This book is very easy and light read and it really belongs in your library. I bet anyone that reads even parts of this book will end up writing better, more manageable code that’s cleaner, modular, reusable, and loosely coupled. As Martin Fowler says in the foreword, ‘Don’t build an enterprise bean without it (this book)’. Can Martin Fowler be wrong? 🙂

If you are looking for a ‘cookbook’ type book that overwhelms you with 200 pages of Java code, this is not it. Instead if you want to learn how to architect simple, flexible and easy to maintain systems, you need to buy and read this book.