Adam Bien is a Java Champion and a well known author of a number of books and articles in the field of Java technology. In his most recent book, Real World Java EE Patterns - Rethinking Best Practices, Bien describes the development and main concepts of Java EE and introduces several best practices to create an easy and maintainable lean architecture.
The first part of the book covers the history and the Java EE core concepts. It is followed by the biggest part of the book, the patterns, which are divided into three categories: the business tier, the integration tier and infrastructural patterns and utilities. Finally Adam Bien rounds off the book by providing a discussion about pragmatic Java EE architecture, where he compares two approaches: service- and domain driven design styles.
I recommend this book to everyone who develops enterprise applications with Java. It covers the author’s real world experience with both theoretical background and technical examples. The patterns described in this book are published online at Project Kenai and discussed on Adam Bien’s blog.
In the past years J2EE has apparently often led to an unnecessary bloated architecture, consisting of a variety of layers and patterns, which were not only hard to test but also tough to maintain. This book offers the possibility to Rethink. Both experienced J2EE developers/architects and Java EE newbies with basic Java skills will benefit from this book. Due to a brief history on J2EE you get a great summary about the development of Java EE and you understand why some developers don’t talk positive about it. Particular mention deserves the first part, the brief history and the core concepts. Information about Java is virtually everywhere in the world wide web. The challenge is to bundle it and this is something that Adam masters perfectly. The patterns provide guidance for a lightweight architecture. Adam demonstrates the respective problem, the forces which led to this problem and offers different solutions with the help of code samples. I really like the fact that there is a testing example for every pattern, as testing is an inalienable part of software development.