Favorite Software Patterns Books

I really enjoy reading books about java and software development. My favorite type of book is the patterns books. Patterns books are great because the chapters are usually short and very focused. So you can read a chapter over lunch, or before you hit the pillow and usually not put the book down in the middle of a 30 page chapter.

I am in the midst of reading and reviewing Pro Java™ EE Spring Patterns: Best Practices and Design Strategies Implementing Java EE Patterns with the Spring Framework. Reading this book got me thinking about all of the other patterns books that I have read and really enjoyed. Here are my favorite software patterns books.

Core J2EE Patterns: Best Practices and Design Strategies

I think this was my first patterns-based book. I got a free copy when I was enrolled in a week long java patterns and architecture class in 2002 or so. I now have two copies on my bookshelf. One for me and one to lend out to friends and colleuges.

Core Patterns starts by introducing the concept of software patterns, then takes a unique approach by describing common J2EE anti patterns and then discussing the refactored solutions. This allows a straight-through reading for those unfamiliar with patterns or use as a reference guide for experienced pattern users.



The Manager Pool: Patterns for Radical Leadership

image

Of all the patterns books that I have read, I think this book has the most chapters at a whopping 61. Its also my favorite. I think its my favorite because it sort of on the fringe of software development, so I don’t feel like I know as much about management. I also like it because I could relate to most every pattern either as a subordinate or as a manager.

This fun book identifies patterns such as Tribal Language, Leviathan, and Unique Place. The chapters are short and quick to read. This book will help you communicate more effectively, understand your subordinates, and make you a stronger software manager.



Pro Java™ EE Spring Patterns: Best Practices and Design Strategies Implementing Java EE Patterns with the Spring Framework

image

I am currently reading this book. The author has a poorly written java web application that uses no model-view-controller. He takes you through the refactoring of the project. He explains a pattern, and then discussues how the Spring MVC implements the pattern. It is common for the next pattern to build on the previous, so this book is a little harder to jump to an arbritrary chapter and start reading, unless ofcourse you know the patterns aready.

This book takes you though the presentation layer, business layer, and integration layer and discusses how Spring uses and implements patterns throughout each layer of the software. A great Spring reference or a great MVC reference. I am glad I got this one for my bookshelf.




Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML

image

This book opens with background on pattern research, including the groundbreaking design patterns. It goes further, with 41 software patterns, all illustrated with UML diagrams and sample Java code. Early patterns, such as Delegation and Proxy, show how classes can work together without relying on inheritance. Next come creational patterns, such as the Factory and Builder patterns and the newer Object Pool pattern.

These pages turn out to be a great resource not only for patterns, but also for Java and UML. If you read this one and enjoy it, there is also a second volume.



Design Patterns: Elements of Reusable Object-Oriented Software

image

This book was a little more difficult to read. Its much more academic-oriented, rather than written to be a casual read. It also goes deeper into the pattern than most other books do. I guess that makes it a good reference. This is one of the only patterns books that I have read that delves into the user interface.

The downside with this book, in my opinion, is that its geared towards C++ software development, so as a java developer, I spent more time trying to understand the code examples than I did reading and understand the patterns.

Check out the table of contents.



Software Architecture Design Patterns in Java

image

Covering 35 patterns, a long introduction to UML, and a web hosting company case study, this book weighs in at almost 500 pages. This one is practially a design pattern encyclopedia, so if you can only have one design pattern book on your shelf make it this one.

This book relys big on examples and has become a fundamental book for newer and older developers alike. After reading this one I think you’ll find yourself using patterns names more often in discussing your software.


Anti-Patterns and Patterns in Software Configuration Management

image

To end, an anti-patterns book. And to be honest, This one I have not read, but its next on my book list becuase it is on a topic that so few developers are experts in or sometimes even carry a conversation in. This book is coming up on 10 years old

As I understand, most readers of this book can really relate to most every pattern because their organizations are so bad at configuration management. This could give you the leg up to show off you knowledge and help your organization become more successful in the art of software development. At least thats what I hope it can do for me.

UPDATE: I just ordered this from amazon.

Thanks for reading my list. Now I have to ask, have you read any of these? Do you have any comments on them? Have you read any great patterns-based books that you would recommend?