Reflection — An Honest Take 8 min

Honest Take — Before You Begin

Honest reflections on object-oriented design in Ruby


POODR is the most re-readable programming book I have encountered. Not the most comprehensive, not the most advanced -- the most re-readable. You read it as a junior and learn about dependency injection. You read it at year five and see the message-passing philosophy. You read it years deeper and realize Sandi Metz was teaching you how to think about change, not how to organize classes. Every reading reveals something you were not ready for last time. That is extraordinarily rare in technical writing.

99 Bottles of OOP is the book's quiet companion, and it is special for a completely different reason: it teaches process, not patterns. It gives you the same problem and refactors it step by step, showing you how to make decisions when the "right" answer is not obvious. Most books hand you a pattern and say "use this." 99 Bottles sits with you in the ambiguity and says "here is how to find your way."

For someone who connects systems and sees relationships between things, this process-oriented approach is more valuable than any catalog of patterns.

The tension nobody resolves honestly: Rails conventions and OOP principles are sometimes at war. Rails says "put it in the model." POODR says "that class has too many responsibilities." Rails says "convention over configuration." SOLID says "depend on abstractions." If you have shipped Rails professionally, you have lived in this tension for years. This module does not resolve it -- it gives you the vocabulary to make the tradeoff consciously instead of by habit. That is the real upgrade.

Sandi Metz is the rare teacher who makes you think instead of memorize. She does not give you rules to follow. She gives you principles to wrestle with. The five-line method rule is not a law -- it is a lens. The difference matters, and most people miss it.

I want to be direct about something: after years of shipping, you have internalized patterns you cannot name. You refactor toward good design by instinct. That instinct is valuable -- but instinct without vocabulary limits your ability to teach, to review, and to articulate why one design is better than another. This module gives you the words.

Conclusion #

This module is not about learning OOP from scratch. It is about completing something you started a long time ago. The design instincts you have built over the years get names, frameworks, and the rigor to evaluate them critically. That is the difference between a senior developer who writes good code and a staff engineer who can explain why.

Predictions #

  • You will refactor code you wrote last year within a week of finishing POODR, not because it is broken but because you will finally see what it should have been
  • The "Rails way vs OOP way" tension will not go away, but you will stop feeling guilty about pragmatic choices
  • 99 Bottles will change how you approach refactoring more than any other single resource
  • You will start seeing messages instead of methods -- and that shift is permanent
  • Sandi Metz's conference talks will become your go-to recommendation for developers you mentor
Learning resources 4

That's the free preview. Sign in to continue this course.

Sign in to continue

New here? Make a desk →