Patterns of Enterprise Application Architecture is one of the classics of programming literature. It is held in the highest regard by a lot of the most prominent figureheads and thought leaders in the world of computer science.
The book is essentially a collection of easy to understand explanations of common design patterns that you will find when building applications.
PoEAA was written by Martin Fowler, a highly respected programmer, author and speaker. Martin has written and contributed to many of the highest acclaimed programming books and continues to be a thought leader in the realm of Object Oriented Programming and enterprise application design.
About the book
PoEAA is a collection of explanations of the common patterns of enterprise application architecture.
However, it’s not like there is some kind of distinction between enterprise applications and everything else. If you’ve been writing code for any amount of time you will more than likely recognise many of the patterns that are described in the book.
Each explanation is simple, clear and to the point. General advice is also administered as to when you probably should and should not use each of the patterns.
Each explanation also has many code examples written in C#, .Net and Java. The code examples not only help explain the concept, but often show you a great deal of the implementation code needed to actually use the pattern in your day-to-day job.
PoEAA covers many of the timeless patterns that are still as relevant today as they were when the book was first published.
The things I liked about the book
There is a lot to like about PoEAA. Despite this book basically being a reference book, I still found it very interesting to read cover-to-cover.
First I found the book very easy to read, understand and learn from. The chapters flow in a coherent order that generally lead from one to another.
Martin also has a fun and humorous style of writing that really brings to life topics that would otherwise be pretty dry.
Whilst I was already familiar with a lot of the patterns in the book, I found clarity in many that I didn’t fully understand. A design pattern is only good if you can draw upon it under the right circumstances. After reading PoEAA I feel I have a much better bank of patterns to draw upon when the time comes.
I also found myself exposed to many new ideas and tools that I had not heard of. The book give me a lot to think about and new avenues of learning to explore.
The book is also chock full of code examples. I’m not a C#, .Net or Java programmer in my day-to-day life, but I found the code examples to be clear and understandable and they really clarified the explanation in prose.
The things I didn’t like about the book
There were’t a lot of things I didn’t like about the book, but it would be unfair if I didn’t mention them.
Some of the aspects of the book felt a bit dated. Many of the patterns are timeless, but nevertheless, could probably do with an update.
The books also dedicates quite a bit to patterns that, whilst important to know about, you will probably never have to actually implement yourself. For example, I think it’s important to understand the difference between Active Record and Data Mapper, but you are unlikely going to have to implement it yourself thanks to the wonderful world of Open Source Software.
Patterns of Enterprise Application Architecture is an excellent reference book that can be read by programmers in all walks of life.
The book will expose you to a lot of new patterns, techniques and ideas no matter how long you’ve been writing code.
Adding more understanding or frames of reference as a programmer is incredibly valuable. When you are exposed to new ideas you will find that you draw upon that exposure when faced with difficult situations or problems you need to solve.
The book also shows when and where to use a particular pattern, and when you should choose one over the other.
Not all problems can be solved with an off-the-shelf solution and so you will probably cause more damage than good if you make the wrong design decision.
Overall I found PoEAA to be an excellent guide and I’m sure it will continue to be an invaluable resource that I will keep returning to over the years.
Buy Patterns of Enterprise Application Architecture on Amazon (Affiliate link).