Practical Object Oriented Design is Excellent

edit ✏️

Practical Object-Oriented Design in Ruby

I've been reading the Rough Cut of Practical Object Oriented Design, and I have been absolutely enjoying every page. It isn't very often that a technical book comes along that really strikes me as a "new classic," but this one qualifies. Sandi Metz has compiled a concise review of SOLID design principles in clear approachable language.

Don't be put off by the "in Ruby" portion of the title. If you can read code and understand the basics of design patterns, this book shouldn't pose any technical hurdles regarding the language the author uses.

One of my favorite features of this book was the way she guides us through the anti-patterns that we typically see in our code. We then step through a series of refactorings before arriving at a simple, maintainable, nicely packaged object-oriented design.

“Don’t overestimate your strengths and use an inflated self-view as an excuse to avoid tests.” @sandimetz is talking to you. #PracticalOOD

— Joel Hooks (@jhooks) August 28, 2012

After we've been well schooled in fundamentals, we are given an excellent exposition of unit testing. The unit testing chapter is worth the cost of admission alone.

@robpenner @troygilbert @jhooks Laziness, combined with very high standards, breeds the perfect programmer.

— Sandi Metz (@sandimetz) August 28, 2012

This is where we want to go after grasping design patterns. It is earning a well deserved spot next to Growing Object-Oriented Software, Guided by Tests in my top ten list.

What tops your favorites list for object-oriented patterns/practices?