Sunday, January 14, 2007

Book Review: Code Craft

Code Craft: The Practice of Writing Excellent Code, by Pete Goodliffe.

No Starch Press,  ISBN 978-1593271190

This book’s a terrific resource for developers wanting to learn or teach good coding practices.  This book is all about how to do software construction the right way.  The book will inevitibly suffer from comparisons to McConnell’s Code Complete, Second Edition — that’s a very, very tough shadow to try and get out from.

Code Craft seems to me to stand up to that tough comparison.  Goodliffe’s writing style is easy to read, and the points he makes are critical to folks who give a hoot about writing good software.  The book’s topics are well thought out, running from defensive coding practices, through the importance of coding standards, solid design, good processes, and a high-level view of methodologies and practices.

The level of detail is generally right on, although on occasion a passing reference is tossed out in a critical context without additional examples.  One of these cases would be his blurb to “consider the Cheshire cat/pimpl idiom” without the least discussion of exactly what the heck that is.  However, and this is important, in many such cases Goodliffe provides a bibliography citation on such topics, which means you can chase down that reference in some other work.  While sometimes annoying, such an approach helps keep the book from being a complete monster — it weighs in at around 580 pages.

I very much liked the on-topic sidebars scattered throughout the book.  They show great examples which tie in with the current topic, such as showing when the right time to use defensive programming is (all the time!), or some quick discussion on how to approach licensing your software.  I also like the 10,000 Monkeys comics dotting the work.  They’re amusing and keep the tone of the book light but still focused.

Code Complete is such a seminal work that Goodliffe’s book will probably have a bit of a tough time making the inroads it deserves simply because McConnell’s work has such a head start.  Still, Code Craft is a solid book and highly useful to all developers, and it deserves a place on the bookshelf.  (And you should read it, not just have it on your shelf.)


Nguyen said...

So what areas does this book cover that Code Complete did not? I have two editions of CC in my shelf, and I would not purchase another book if it does not offer anything newer.

Jim Holmes said...

It's a great book, but much in the same vein as Code Complete.

If you're already doing the Code Complete thing then I'd say there's probably not enough of a case to buy this book separately.

Nguyen said...

Thanks, Jim. With the 2nd edition of the CC, I think it takes long before someone can beat McConnell - CC is just a great book and the concepts are mostly technology agnostic. Maybe another 5 years, if McConnell decided not to throw out the 3rd edition. But of course if I did not have CC, I would have tried Code Craft.

Jimbo said...

I've recently read both CC v2 and Code Craft, coming fresh to both, and I enjoyed Code Craft more. Code Complete sprawls somewhat, whereas Code Craft is tighter prose. It flows more easily and is significantly easier to read in large chunks.

takacsot said...

I was surprised when I have read Code Craft written by Pete Goodliffe.I was surprised because it contains everything I would know about programming. Not only about programming but development. I would not thought that I need this book. I am quite experienced developer. And I am sure that in my job I am one of the bests. I was proud of this knowledge. I have read I realised that I am still a beginner compared to development knowledge I should know about.

Tools, techniques, best practices described in this book is not related to any programing language or environment. It does not matter whether you are a Java, .Net or C++ developer. Even you are a Ruby fun. Everyone could improve in knowlledge.

I have created a good extract about the contents of the book. If you like check it and after that you could make decision about whether you want to by the book or not. So the link is:

Subscribe (RSS)

The Leadership Journey