Implementation Patterns by Kent Beck
Publisher: Addison-Wesley Professional
This book is all about communication. That is, communication through code. I like the idea; for most software the cost of maintenance is far higher than the cost of initial development. Classic approaches to address the problem have failed (e.g. heavy up-front design combined with attempts to anticipate future changes). The idea captured in Implementation Patterns is to lower the cost of understanding existing code in a maintenance phase. I applaud the initiative, but does the book deliver? It hurts to write but it doesn't. While there's some good stuff in it, it's also by far Kent Beck's weakest book.
Selecting a programming language puts unique constraints on the implementation of a pattern. Yet I would expect the idea captured in the pattern to transcend the language. This is not the case here. The majority of the patterns are Java specific (such as wading through the collection classes in Java). Clearly the title is misleading ("Java Idioms" would have been more fair). This was a major disappointment.
It's also interesting to note that someone who values communication as highly as Kent Beck does insists on using his own, homebrewed modeling notation.
It's in the chapters where Kent Beck leaves the Java land and focuses on language independent issues that the book provides value. Here Implementation Patterns really sweats the small stuff, which I do like; a very concrete everyday-problem is proper naming of functions and variables, yet this topic is often overlooked in the literature. Implementation Patterns covers it with good discussions and gives concrete, valuable advices. But, when taking on larger topics like exception handling and frameworks the format simply doesn't work. There's nothing wrong with the given advices, it's just that you have to already master the topics in order to truly understand the rather abstract and general recommendations. The content is simply to thin to stand on its own. Had Beck finished each pattern with references to articles or books on the subject, Implementation Patterns could have served as a valuable catalog and entry point to important design principles. Unfortunately this is not the case. The consequence is that the book lacks an obvious audience; the people likely to pick it up already know the topics and the once that don't will not gain any deeper insights from the book.
Beck is a good writer, but there are more important books to spend time and money on. Particularly if you're not programming in Java.
Reviewed April 2008