Book review: Growing Object-Oriented Software, Guided by Tests
Z Jacek Laskowski - Wiki Projektanta Java EE
Growing Object-Oriented Software, Guided by Tests By Steve Freeman, Nat Pryce (Addison-Wesley, October 2009)
Challenge your thoughts on growing your software with tests, constantly
The book "Growing Object-Oriented Software, Guided by Tests" By Steve Freeman and Nat Pryce is packed with so many extremely useful information about writing object-oriented software with tests that I once had to stop reading it as I was afraid I would have gotten a bit carried away. Each and every page has its purpose. Each presented me profound wisdom of Test-Driven Development (TDD) and during the time of its reading I couldn't stop wondering when and how to apply it in my development activities (I still haven't, but am working on it). It's without a doubt a very informatory book about practices and theories behind TDD and jMock. There is no excuse for skipping the book while developing your software as well as software development career itself.
The book consists of 5 parts, 27 chapters, 3 appendixes and almost 350 pages. After 8 informatory chapters of the Part I: "Introduction" and Part II: "The Process of Test-Driven Development", the Part III: "Working Example" appears in which you will learn what it is to write an exceptional book about TDD by its practitioners. It was then when I let myself take some time off reading the book. Following the Part 3's chapters strained every nerve of mine to fully understand the TDD concepts. The authors did a good job of explaining TDD theory focusing on its practical aspects like early feedback, code quality, readability and maintenance.
It's definitely not a book that you read and forget. It is one that you read and never forget. It is one that requires a lot of attention on your part and leaves no stones unturned in pursuing well-thought-out object-oriented software development. The last Part V: "Advanced Topics" was quite hard to follow, perhaps because it touched the concurrency and asynchrony concepts I'm not very good at and interested in. I then enjoyed the Afterword: "A Brief History of Mock Objects" where I learnt the history of jMock in quite a humorous way. Opening each chapter with a motto was highly motivational and made the reading even more enjoyable experience.
I think it'd be better off if the book became a mandatory reading for all who wish to master the art of object-oriented software development. It's simply the very indispensable thing for becoming more test-oriented.
