Slashdot Mirror


Patterns of Enterprise Application Architecture

Duane Gran contributes this review of Patterns of Enterprise Application Architecture, writing "The title of this book is a mouthful and the author, Martin Fowler, confronts headfirst complex topics of concern to software developers and architects. Fowler is a respected figure in software engineering circles, and his latest book is an attempt to codify best practices he learned in the trenches and through peer relationships. Many of the patterns will resonate with experienced developers, but Fowler's talent explaining abstract concepts will afford even the most grizzled reader many 'aha!' moments." Read on for the rest of Duane's review. Patterns of Enterprise Application Architecture author Martin Fowler pages 560 publisher Addison Wesley Professional rating 10/10 reviewer Duane Gran ISBN 0321127420 summary Excellent analysis of complex problem solving

The book is honest and upfront about grey areas in addition to (nearly) hard and fast rules. Fifty one patterns are described in an organized fashion, grouped by theme. The first section gives an overall narrative tying together the concepts while the remaining 4/5 of the book is devoted to short chapters on each pattern. In this way the book works well on two levels, as a reference and a tutorial. Code examples are given in Java and C# where most appropriate for the given pattern, however most examples use Java.

Much of the book centers around the task of Object-Relational mapping between the in-memory model of an application and the datastore. There are a surprising number of design choices in enterprise systems and I often found myself nodding in agreement with the logic behind the patterns. After establishing that mixing presentation and domain logic is a mistake worthy of horse-whipping, a plethora of smart alternatives are given.

I found this to be one of the more enlightening books I've read, and place it alongside Effective Java and Design Patterns Explained as canonical books for the Java developer. I'm a fan of the O'Reilly Java series, which excels in the HOW-TO category of books, but I've recently taken to the Addison-Wesley publications, which deal less with the nuts and bolts, and for lack of a better word are more like WHY-TO books.

Aside from being an excellent book, I also liked that it is hardbound and includes a bookmark (simple nylon strap from the binding). This is a fitting presentation for such a quality book.

The only complaint I might have is that sometimes the code examples are a tad brief for my taste. The author is fond of declaring a class as follows:

class ArtistMapper ...

From the UML diagrams provided I was often able to conclude that ArtistMapper extends AbstractMapper or that ArtistMapper implements Mapper, but as I read the examples I yearned for completeness. Two guesses come to mind as for this choice:

  1. The author explains that the code examples are meant to facilitate understanding, not to provide boilerplate code. Fowler's appreciation for the complexity of software systems leads him to caution the reader to implement the examples without careful consideration to the context in which they are deployed. Partial code examples forces the reader to fill the gaps, and in the process may think more critically about it.
  2. There is often more than one way to do things, like abstracting an interface in Java. The choice of extending an Abstract class or implementing an interface implies a subtle, but far-reaching, development choice. Similar to the previous point, I think Fowler may want the reader to choose a concrete class implementation appropriate for his or her application.
On the whole, I really enjoyed the book and would recommend it without hesitation to fellow software developers and architects.

You can purchase Patterns of Enterprise Application Architecture from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

8 of 94 comments (clear)

  1. FIRST RFC 3514 by EnderWiggnz · · Score: -1, Offtopic

    read here.

    --
    ... hi bingo ...
  2. 1 ddfdffddf by Anonymous Coward · · Score: -1, Offtopic

    1\ Worth a try

  3. Huh? by Anonymous Coward · · Score: -1, Offtopic

    Oh, I get it, APRIL FOOL'S!!!!

    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

  4. Cat got your tongue? by Anonymous Coward · · Score: -1, Offtopic

    April Fools is OVER!

    6 months ago Mozilla was at .99..

    A project that's been in the work for well over 3 years..

    And NOW 1.4 Alpha?!?!

    Excuse me while I go pop some more of those hallucination thingies I had before.

  5. that's ok... but how about this? by Anonymous Coward · · Score: -1, Offtopic

    The Iraqi "army" (that lovable, rag-tag gang of uniformed special forces and plainclothes civilians with AK-47s) has spent the past week fighting dirty. They are not following the new rules of war: humane treatment of prisoners, uniformed service, conventions of surrender, et cetera. No no. Iraqis are fighting this one old-school: anything goes, and their wonderfully simple goal is to kill as many Coalition forces as possible, by any means necessary.

    Well, I'd like to suggest the US and the rest of the Global Beatdown Squad return to their Barbarian roots, and effect a new strategy: Kill every male over 14 in Iraq.



    Think about it. Our family, friends, cousins and countrymen are stepping into a hornet's nest the likes of which has not been seen since Vietnam. To worsen the matter, the enemy is not above breaking any good-faith conventions in order to lure GIs to their sandy grave.

    They are breaking the rules of the Game. They checked their moral character at the door; they neither ask for nor deserve pity.

    Then why do we coddle them, nagging and pleading them to surrender and limiting our territorial prospects with "surgical strikes"? They are not coddling us. They are beckoning us towards their taxicab and blowing us apart with searing-hot shrapnel. They are flying a white flag and opening fire when we get close enough.

    I'll put it this way: Every male fifteen years old or above in Iraq must be killed.

    Americans are not safe in Iraq until the entire country is either peaceful by choice, or (in the case of the Iraqi "military") peaceful by force. The Coalition is fighting a clean war, making an effort to avoid civilian casualties and honestly hoping for nothing more than a cease-fire and a clean transfer of power.

    Yet these Iraqi bastards stop at nothing to spill American blood. There is only one solution; it has been considered generally unpalatable for several hundred years, but there is no doubting its effectiveness.

    Kill the men.

    We need not rape and enslave the women and children. In order to ensure a future for a stable Iraq, we must allow their lives to remain as unchanged as possible. This is why we need only kill fightworthy males.

    What if Iraqi troops attempt to surrender, when they see half the men in the country dead in a trench? They too must die, for only by holding to a strict discipline may we win this war with honor and dignity.

    During the new Iraq's reconstruction, the Coalition could pay to fly eligible males to Iraq for free, along with their possessions. There would surely be a worldwide rush to accomodate the naturally-beautiful Iraqi women.

    In conclusion, Iraq has rolled the clock back hundreds of years on the etiquette of warfare. It is both morally justified and militarily correct to reciprocate, and when I ask myself "What would Attila do?", the answer is to totally exterminate of the Iraqi adult male.

  6. Addison "Wesley" Professional and "Enterprise"? by Viking5150 · · Score: -1, Offtopic

    I know there's a Wil Wheaton joke in this story somewhere......

  7. Patterns? by Anonymous Coward · · Score: -1, Offtopic


    Cmdr Taco prefers the patters of man lips across his cock.

  8. Re: Enterprise Application by jhampson · · Score: 0, Offtopic

    I put my application in to serve on the Enterprise, but was kicked out of Starfleet Academy during my senior year for cheating.
    Seems my instructors didn't like my solution to the Kobiyashi Maru. I hax0red the computer so I could win.
    I heard that a similar case happened with a boy from Kansas or some such place, but he received preferential treatment due the the fact that they thought that he was retarded, what with his stilted speech and all.