Mr. Martin Fowler & Objectivity

Martin Fowler has been one of my favorite authors for a while now, I started out by reading Refactoring (though I should probably have read it a year earlier to get the most out of it), and later moved on to Patterns of Enterprise Application Architecture. Right now I'm skimming through UML Distilled, I've mostly used class and sequence diagrams in the past, so I thought I'd check out what else UML has to offer.

This book is not as dry as you'd imagine a book on UML being. It's also very short (~160 pages). One thing Fowler has done that I really appreciate is that he focuses on what he deems important, and the diagram types he never uses only get a page or two.

I think he puts it so well in the preface when he explains "It's also an opinionated book. I've been working with objects for a long time now, and I have definite ideas about what works and what doesn't. Any book reflects the opinions of the author, and I don't try to hide mine."

Fowler seems to be a very humble man. He doesn't hide the fact that he makes mistakes all the time, and reading his books you realize that he doesn't have an idealistic view of software engineering, he knows he's working with humans and that's not always the best situation to be in!

I also found another particularly interesting piece of information in the book. A good explanation of why "isa" doesn't automatically imply subclassing. It boils down to telling the difference between generalization and classification. Otherwise you might end up in a situation where (using his example) "Shep" is a Border Collie, and A Border Collie is a species, which would then imply that "Shep" is a Species. So without going into too much detail, there's another reason to stay away from the "isa" analysis.

So, given it's a short read, and dirt cheap, I can recommend it if you need to learn UML or need a refresher, even though I haven't read all of it yet.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

More information about formatting options