Fowler's "Patterns of Enterprise Application Architecture" still relevant?

19,299

Solution 1

Yes, it is still very relevant and an excellent resource.

Solution 2

This book, and Eric Evans book about Domain-Driven Design, are my books of the year - every year ;) ...

Solution 3

It's very relevant. I frequently refer other developers to particular patterns from that book, as links to his site (http://www.martinfowler.com/eaaCatalog/), such as Data Transfer Object and Service Layer.

The latter is one I thought I had "invented" until I saw that Fowler had already written about it.

Solution 4

Given that the answers to this question are now three years old, I felt it important to restate the relevance of Martin Fowler's patterns.

The GOF design patterns book was first published in 1994, and many of its patterns are still considered relevant. We may have come to a deeper understanding of them and produced subtle variants, but they are there as the foundation of any good OO design.

Modern languages increasingly implement some of the patterns behind the scenes so that the developer in theory doesn't have to know about them (an example is the Iterator pattern through the yield statement in C#). But, the developer is a better one for knowing them.

Moving on the Martin's book - this absolutely is still relevant. Its true that many libraries now support these patterns in the background, once again abstracting them away from the developer, but again they are at the core of enterprise application software development.

They solve problems that occurr again and again, regardless of language, system, or platform.

Solution 5

I disagree with the "bias towards Java" statement. Patterns, by their nature, are language-agnostic. They're defined as solutions to common problems. The copy of Fowler's book has examples in both Java and C#, so I can't see where the "bias" comes in. They're the most common object-oriented languages, and he's talking about object-oriented solutions to enterprise problems.

The GoF book has examples in Smalltalk and C++. Why are they so "biased" against Java and C#? Hint: the languages didn't exist when that book was written, but the patterns are as relevant as ever.

Share:
19,299

Related videos on Youtube

Jack Singleton
Author by

Jack Singleton

Updated on July 23, 2020

Comments

  • Jack Singleton
    Jack Singleton almost 4 years

    I'm thinking of buying Martin Fowler's "Patterns of Enterprise Application Architecture".

    From what I can see it seems like a great book, an architectural book with bias towards enterprise Java -- just what I need.

    However, in computer years, it is quite old. 2003 was a long time ago, and things have moved on quite a bit since that time.

    So I'm wondering if anyone can tell me: is this book still relevant, and worth the read?

    • G-Wiz
      G-Wiz over 14 years
      A programming language book from 2003 would be outdated. But PEAA is not about a programming language, it is about object-oriented design. Unless you've moved onto the next big thing (such as functional programming, or model programming with M) this book is every bit as relevant today as it was the day it was released.
    • Kheldar
      Kheldar almost 13 years
      How is functional programming the Next Big Thing? It dates back to the 50's with LISP (1958), and even to the thirties if considering Lambda Calculus, but let's not nitpick. Yes, it's still alive and kicking. But the Next Big Thing... then alphabet is the next big thing :D
    • luis.espinal
      luis.espinal almost 11 years
      @gWiz "How is functional programming the Next Big Thing?" - it is the next big thing because it is becoming more widely accepted. "Next thing" is not a matter of chronology. It is a matter of ascendancy (as observed from the current time.) It doesn't matter if a paradigm, regardless of virtuous, is old or new. What matters is its ubiquituousness. Old, but practically unknown by most, and now becoming widely used? Next thing it is then.
  • Jack Singleton
    Jack Singleton about 15 years
    Well, I haven't read the book, so I don't really know... I didn't mean bias in a bad way. It probably would have been more correct to say "the common object-oriented languages used in the enterprise", but I'm a Java guy -- when I think "object-oriented language used in the enterprise" I think Java.
  • duffymo
    duffymo about 15 years
    Agreed, but other people reading your comment might think you had read it and shy away because they aren't Java folk. I wanted to clarify.
  • aurora
    aurora over 12 years
    ... and not only for java developers. it's indeed a great read and you don't need any special java knowledge to understand, what he is writing about.
  • quantumbyte
    quantumbyte about 10 years
    One cannot invent patterns, only discover them ;)
  • Jono
    Jono over 9 years
    That's inherently not true. All languages you states were imperative languages. You need functional patterns in functional languages, imperative patterns in imperative languages etc. Think about it, patterns that rely on mutation won't work in a pure functional language. Probably no patterns we usually use would work with prolog or Erlang. Just saying, to a reasonable extent - it matters.
  • robsch
    robsch almost 9 years
    Still true in 2015?
  • Andy
    Andy over 8 years
    @robsch Yes, still relevant.
  • Piovezan
    Piovezan almost 7 years
    The link is broken.
  • hyankov
    hyankov about 4 years
    Still true in 2020?