|
Occupying conceptual ground between Bertrand Meyer's Object Oriented Software Construction and The Pragmatic Programmer by Dave Thomas & Andy Roberts, this is equally as good as those books. I would suggest having read the likes of Martin Fowler's Refactoring and the GoF patterns book first, as well as knowing how JUnit works, as the value of this book is in examples of how to use the various practices and how they work together, rather than detailed introductory material. The opening section briefly covers XP practices. Highlights are the example of refactoring a prime-number-generating program, and in particular, a long example of using Test Driven Development to write a bowling scoring application in Java. The second part concerns itself with the various design principles associated with OOD that have crystallised in the last few years, e.g. the Liskov Substitution Principle (one of the best discussions of this I've read), the Open-Closed Principle, the Single Responsibility Principle, the Dependency Inversion Principle etc. The rest of the book alternates between case studies and introducing design patterns. This is not the book to read to learn about design patterns, but it is an excellent resource for thinking about where those patterns are useful and what the pros and cons are. The text is well-written and the style conversational and witty. I recommend this book highly.
|