Patterns of Enterprise Application Architecture

Aleksandr Shitik
Aleksandr Shitik

I write my own posts and books, and review movies and books. Expert in cosmology and astronomy, IT, productivity, and planning.

Patterns of Enterprise Application Architecture
Martin Fowler
Genres: Programming
Year of publication: 2016
Year of reading: 2020
My rating: Normal
Number of reads: 1
Total pages: 548
Summary (pages): 12
Original language of publication: English
Translations to other languages: Russian, Spanish, Portuguese, Chinese

General Description

The book is slightly over 500 pages long and consists of two parts, comprising 18 chapters. It includes numerous code snippets, diagrams, and schematics. There are no traditional illustrations. The difficulty level is somewhere between easy and medium.

Table of Contents

Part I. Overview

  • Chapter 1. Layering the System
  • Chapter 2. Organizing Business Logic
  • Chapter 3. Object Models and Relational Databases
  • Chapter 4. Presenting Data on the Web
  • Chapter 5. Managing Concurrent Tasks
  • Chapter 6. Sessions and State
  • Chapter 7. Distributed Computing Strategies
  • Chapter 8. The Big Picture

Part II. Patterns

  • Chapter 9. Rendering Business Logic
  • Chapter 10. Data Source Architectural Patterns
  • Chapter 11. Object-Relational Behavioral Patterns
  • Chapter 12. Object-Relational Structural Patterns
  • Chapter 13. Object-Relational Metadata Mapping Patterns
  • Chapter 14. Web Presentation Patterns
  • Chapter 15. Distributed Data Patterns
  • Chapter 16. Offline Concurrency Patterns
  • Chapter 17. Session State Patterns
  • Chapter 18. Base Patterns

Opinion

A purely theoretical programming book, which at times feels slightly outdated. I picked it up solely because of the author's name—Martin Fowler has been a well-known advocate of software development and an experienced programmer for many years.

The book left a mixed impression: on one hand, it covers many popular patterns and architectural solutions, some of which have remained relevant for decades. On the other hand, the concepts behind modern architectures have evolved significantly over the past years—and even more so over the past decades.

Patterns such as Singleton, Adapter, or layered architecture with OOP still apply, but modern systems have become more decentralized and high-load. The importance of replication has increased, caching is used ubiquitously, and message brokers have become an essential part of most complex systems—yet all of this is barely covered in the book.

Thus, the book hardly qualifies as a relevant guide for modern applications. And given that today educational content can go beyond dry text, a few diagrams, and explanatory code snippets, I wouldn’t particularly recommend reading this book. Perhaps it was once considered a "classic" of programming, but now, I’m sure, there are more modern and significantly less boring resources to learn similar material from.

Вверх