Growing Object-Oriented Software, Guided By Tests
The core of this interesting exploration of test-driven development is an attempt to describe in some detail the process of developing a non-trivial network application. A frequent obstacle in treatments of unit tests and of refactoring is simply demonstrating their utility to skeptics: if the examples are small enough to grasp easily, they are small enough to dismiss as toys. It’s easy to convince yourself that these techniques spend time to polish impractical little gems, especially if you’re a pointy-haired manager with urgent deadlines and little concern for the fate of the code after a successful launch wins you a promotion.
I always despised the whole idea of lab partners. To save a a little space and equipment, the school would yoke you to some bystander who might be useful but often was not. Pair programming always struck me as a ghastly idea, though is can be interesting in very small doses when you’re getting up to speed in a new area. To a considerable extent, this feels like pair programming in print.
Still, there’s good material here. Freeman and Pryce don’t dodge difficult issues, such as concurrency, and they embrace an interesting test style that freely mixes acceptance and unit tests.