This post concludes my chapter-by-chapter review of Agile Software Development Principles, Patterns, and Practices by Robert Martin. Although I have barely scratched the surface of the book in terms of posts and it certainly contains much more information (and more chapters) than I have presented in my review, I want to wrap this review up with the following comments below.
What I Didn't Cover
I didn't cover all the cool design patterns that Robert discusses in more detail and how they relate to the five Object-Oriented Programming Class Design Principles mentioned above in Chapters 8 - 12. Robert does an excellent job of describing the following design patterns and the rational behind them:
- Command and Active Object
- Template Method and Strategy
- Facade and Mediator
- Singleton and Monostate
- Null Object
- Factory
- Composite
- Observer
- Abstract Server, Adapter, and Bridge
- Proxy and Stairway to Heaven
- Visitor
- State
He also shows the design patterns being used in 3 case studies: Payroll Case Study, Weather Station Case Study, and an ETS Case Study.
Conclusion
Robert's book is an excellent introduction to object-oriented programming principles, design patterns, and how the theory can be used in a real application and application framework. The information is well laid out in a logical and comfortable style. Chapters can be easily digested in one-hour increments. This is a good book for intermediate and expert developers. Beginners with a bit of OOP experience will also benefit from reading the book. For someone who hasn't done any OOP at all, I am sure there are easier books to start out with.
The code examples are in java and C++, so you won't find any C# or VB.NET examples and absolutely no mention of anything .NET related. If you don't feel comfortable with looking at java or C++ syntax, I still think the book is a great buy with just the theory alone. However, the code samples could definitely be improved, and they are certainly not one of the book's strengths. If Robert came out with VB.NET and C# versions of the book, this book would be a must buy in my opinion.
Book Resources
Recommended Companion Book
Recommended Reading