"Growing Object Oriented Software, Guided By Tests" Book Writeup
June 22, 2012
What’s the point?
This book covers how to use TDD to drive the design of a system from the first line of code you write. The key word from the title is “Growing”, as the book advises using tests to let your system design evolve and reveal itself more naturally.
How was it?
Despite not being as well-known as other books in this area, I found GOOSGBT to be really excellent. The introduction section is the most concise way to explain the benefits of TDD that I have come across. For me, this book was at just the right level - it doesn’t get stuck explaining the basics of TDD and moves quickly.
The second half of the book is an example project that shows, in sometimes excruciating detail, how to build an “auction sniper” using TDD techniques from the ground up. It is very dense reading, but it does serve as a good example of practical TDD. Since every step is explained and justified, the authors are forced to avoid hand-waving over the nasty details that would be convenient to skip.
The book is a few years old and the sample project is a Java desktop app, but the lessons and material is very relevant to the current fascination with OO design.
Who should read it?
This is a great mid-to-advanced level book on TDD. I don’t know if I would recommend it to someone completely new to the topic; but for someone with a bit of experience, this is the book you want to read.