TDD is very modern subject on IT scene nowadays. It makes - with no doubt - more useful code design, which is easier to maintain and refactor. Ok - there are still many sceptic developers, but I would name them 'lazy' instead 'sceptic' ;).
I found this book very inspiring - one of these which change your point of view, move you to keep trying getting better. I was amazed with some pieces of code - I mean ease of reading it like a normal sentence - not code ( example: building objects with builder pattern in chapter 22 ).
"If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book" - one of many wise sentences from book. Too bad that it is sometimes really hard to catch what is main subject, which authors try to sell to reader. Part III which should be the most interesting - "A Worked Example" was simply boring - I cant see sense of showing building tests for each functionality - I found it boring and hard to overcome. However I still have in mind that I am beginner in TDD world. Maybe some subjects are too hard to understand it now ; )
What I miss in this book is advice how to work properly and effective with legacy code. I mean - how to refactor 10-years old project which didnt see any test in its miserable life.
There are many places where authors try to inspire readers. They show that previous implementation wasn't the best possible, and make you feel that they really didn't know they can make it better before. Ofcourse with TDD you are not scared anymore to refactor anything ;)
To sum up - it is really book from TOP. Nevertheless, too hard to be 1st on TDD way and just one of many books/articles/blogs/conversations which you need to pass to become test-master. I want to read it one more time after some other materials about testing, just for better understanding - lazy developer with will to read it one more time should convince you, really ; )
If you want to read a good book of how you can test large existing code bases read Michael Feather's book: Working Effectively with Legacy Code.
OdpowiedzUsuńI disagree about what you thing about the working example. If you really follow the example by coding it by yourself, you will see how the authors think about changing the system by doing little baby steps.
I also think that this book is currently the best book about designing oo systems. I've read a few other books about tdd but this book gave me the "aha"-effect.
Cheers
http://sageniuz.wordpress.com