The premise of this book is that good code matters because it reduces maintenance costs and because the author says he doesn't want to waste time on work he's not proud of.
OK, that sounds good, but what makes you proud? A program that does its job and that users appreciate or one that is written beautifully? Frankly, the first is a lot more important to me, but perhaps the author just assumes that and feels that is so obvious it doesn't need to be mentioned.
But I have some reservations about the maintenance assertion also. It feels intuitively correct, but is it? I can certainly think of many thousands of hours I've spent on code that never needed modification and never will, either because its lifespan was naturally quite short or the task it accomplishes is so simple that it never needs any attention. Does the overall gain on the few projects that need maintenance overhelm all that code? I don't know, and that's my point: the case for so called "good code" isn't backed up by hard data. Maybe it can't be, not because it's wrong, but because it would be impossible to control experiments tightly enough to come to legitimate conclusions. But it could be just plain wrong - one of those things that everyone assumes must be true but is not..
Well, all right, but it certainly doesn't hurt to read about good practice. Any programmer should think about these things. But that's my next gripe: ANY programmer should be thinking about these ideas, but the book is written with Java used as his example language. I don't like Java - not because it's a bad language, but because it is so often badly deployed on the Web where it is slow and painful. As Google has so elegantly shown us, Ajax is the right choice for the Web. But never mind - if you know any OOP language, you can probably muddle through.. yet it would have been so much better to give examples from a few different languages.
Finally, at times I felt a little bit "talked down to". The author tends toward pedantry and is just this side of someone you want to say "Sheesh, get over yourself!" to.. he's not quite there, but he's close..
So, good book? Yes, probably so in spite of its defects. As I said above, everyone should think about the kinds of things presented here. Some may seem silly (certainly some did to me) but others may resonate and still others may be an awakening.
Tony Lawrence 2007-12-19 Rating:
Order (or just read more about) Implementation Patterns from Amazon.com
Got something to add? Send me email.
More Articles by Anthony Lawrence © 2011-03-20 Anthony Lawrence
The errors which arise from the absence of facts are far more numerous and more durable than those which result from unsound reasoning respecting true data. (Charles Babbage)