Patterns of Enterprise Application Architecture
Why I read this book
Patterns of Enterprise Application Architecture is not a typical technical textbook. The reason being it is very much a book of two halves.
The first 106 pages cover at a high level the most common software design patterns used in enterprise application development.
The remaining 500+ pages are split into 10 chapters covering the specifics of 51 different design patterns.
All of the patterns covered can typically be found in any number of modular software development frameworks which consist of a data access layer, inherited controls and handlers. Reading Patterns of Enterprise Application Architecture provides you, good background of the environment these patterns are being used in.
If you develop enterprise software applications you will find this book very useful and undoubtedly regularly use it as a reference manual.
The Software Design patterns discussed in this book are platform and language agnostic, so can be applied virtually anywhere. However, you should proceed with caution and don’t try to push all available patterns into all of your applications, but you should only use patterns of this book when you face problems that your tools don’t solve or solve poorly.
What I like about this book?
This book catalogues software design patterns commonly used when developing Enterprise Software Applications:
- Domain Logic
Transaction Script, Table Module, Domain Model, Service Layer
- Data Source
Table Data Gateway, Row Data Gateway, Active Record, Data Mapper
- Object-Relational Behavioral
Unit of Work, Identity Map, Lazy Load
- Object-Relational Structural
Identity Field, Foreign Key Mapping, Association Table Mapping, Dependent Mapping, Embedded Value, Serialized LOB, Single Table Inheritance, Class Table Inheritance, Concrete Table Inheritance, Inheritance Mappers
- Object-Relational Metadata Mapping
Metadata Mapping, Query Object, Repository
- Web Presentation
Model View Controller, Page Controller, Front Controller, Template View, Transform View, Two Step View, Application Controller
Remote Facade, Data Transfer Object
Optimistic Offline Lock, Pessimistic Offline Lock, Coarse-Grained Lock
- Session State
Client Session State, Server Session State, Database Session State
Gateway, Mapper, Layer Supertype, Separate Interface, Registry, Value Object, Money, Special Case, Plug-in, Service Stub, Record Set
What I recommend this book
The patterns catalogued and described by Martin Fowler will help you understand what happens behind the scene and use this knowledge for optimizing, troubleshooting, and improving the design of your applications.
This book has something valuable for everybody. If you are new to the industry, you will learn about common recurring problems in building enterprise applications and study techniques to solve them. If you used these patterns before, you will deepen your understanding of them.