Casey Brant

Mar 20, 2017

Notes from Practical Object-Oriented Design in Ruby

This is a braindump of the notes I took while reading this excellent book by Sandi Metz. No attempt was made to structure or summarize beyond what I personally found useful as reference material. I'm publishing it here in case someone else finds it useful, but really, you owe it to yourself to just read the whole book!

1. Object-Oriented Design

2. Designing Classes With a Single Responsibility

3. Managing Dependencies

4. Creating Flexible Interfaces

5. Reducing Costs With Duck Typing


Paradoxically, I got the most out of chapters 1–5. 6–9 covered material I was already more comfortable with, and so I didn’t take detailed notes on them. This doesn’t mean they aren’t insight-packed, incredibly valuable chapters! They’re excellent.

6. Acquiring Behavior Through Inheritance

7. Sharing Role Behavior with Modules

8. Combining Objects with Composition

9. Designing Cost-Effective Tests

Hey, thanks for reading. I don’t have comments on my blog, but I’d still love to hear from you. These are the best ways to reach me:

Or, check out my other posts and projects.