Skip to content

Book Review : Patterns of Enterprise Application Architecture

Patterns of Enterprise Application Architecture


Patterns of Enterprise Application Architecture

Martin Fowler

Essential reading and desktop reference for all software developers

Buy Now

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
  • Distribution
    Remote Facade, Data Transfer Object
  • Concurrence
    Optimistic Offline Lock, Pessimistic Offline Lock, Coarse-Grained Lock
  • Session State
    Client Session State, Server Session State, Database Session State
  • Miscellaneous
    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.

Gary Woodfine
Latest posts by Gary Woodfine (see all)