Growing Object-Oriented Software Guided by Tests
Reviews Online
Read what people are saying about the book...
Methods and Tools: I will consider it a must for anyone programming in Java, but I will also recommend it to people programming in other languages, as the thinking process could be applied in other contexts and with similar tools.
Giorgio Sironi: Growing object-oriented software, guided by tests is a masterpiece on Test-Driven Development, a valid guide for the beginner in this field and for the almost expert as well. ... The title describes exactly the purpose of the practices presented in the book: starting an ambitious project from scratch, and expand the product from an empty skeleton to a fully-featured application. ... The book is oriented to a Java audience, but if you exclude the last two chapters every practice and principle is just tied to real object-oriented programming and not to particular programming languages. For examples, PHP 5 has a complete object paradigm and the necessary tools (PHPUnit, Zend_Test) to practice the techniques described in the book.
Gojko Adzic: Growing Object Oriented Software, Guided by Tests, by Steve Freeman and Nat Pryce is a TDD book, but unlike any other on the market today. First of all, the book deals mostly with advanced unit testing topics, such as designing tests for readability and mocking, and addresses many common stumbling points that people experience with unit testing a few years after they started their journey, such as applying unit testing in multi-threaded and asynchronous environments. Second, it explains and demonstrates in practice the dynamics of designing software through TDD, which is still a dark art for many programmers. And third, it gives the reader insight into Freeman’s and Pryce’s brains...
Miško Hevery: The book starts right at the beginning as to why we want to develop test first and covers advanced topics such as testing persistence, threads, and asynchronous code. I particularly like the style with which the book delivers the message. They start by building a simple application and add new requirements to it, morphing the codebase in the process. As they do so they introduce new classes and walk the reader through the thought process considering alternatives finally choosing a solution. This gives the reader a good understanding as to what to think about when looking at code. Of course all of these changes are driven by tests, and a lot of discussion is spent on explaining why a test was written in a particular way and how to refactor it as it grows with the applications, so that tests do not become a liability. ... If you are newbie, or an intermediate to developing with tests than this book is a must for your library!
Tomek Kaczanowski: This book is so great that I could write tons about it, but I tried to keep it reasonably short. ... you can see not only what choices the authors (experienced programmers) make but you can also read why they took such and such decision. It is like sitting next to a great coder, looking at what he does, and listening to his explanation on why he does it. Invaluable. ... This book is a must-have. It is a pleasure to read, and gives you plenty to think about. Just go and buy it.
David Peterson: Almost every programming book I've read has irritated me. ... Java books are the worst because Java's the language I use most and know best. I still read them because there are usually a few good ideas buried inside, but it irritates me that I have to wade through so much tosh. So far, Growing Object-Oriented Software, Guided by Tests is the only exception. There's no tosh. It's incredible. I've read the book two or three times and each time I felt myself becoming a better programmer. If you haven't read it yet, I can't recommend it enough.