
Practical Object Oriented Design In Ruby
by Sandi Metz · first published 2012
72mentions
46recommended by
62HN commenters
2012–2025first – last mentioned
74% recommend23% neutral3% critical
Why HN recommends it
Clear, concise guide to object-oriented design, built on concrete refactoring examples, message passing, and testing and mocking. Useful for novices and working developers, and the lessons carry over to any language.
Summarised by Claude from recommending comments
Affiliate links. As an Amazon Associate I earn from qualifying purchases.






…the finer points of the language. Make those apps open source, then connect them up to Code Climate. (free for OSS) Going through the process of increasing your code's GPA will help you improve. Read Practical Object Oriented Design in Ruby by Sandi Metz.
on “Ask HN: How can I become a better programmer?” ↗"Practical Object-Oriented Design in Ruby. A Agile Primer" By Sandi Metz. I am not so much a ruby fan, but don't let the title decive you, ruby is just the tool (since it could use any other OOP language) to show what the book is realy about…
on “Ask HN: What's the best programming book you've read recently?” ↗Depends on how you're a newbie! New to coding - Chris Pine's Learn to Program is THE book. I like it more than Why's guide, or any website. New to OO - Try Sandi Metz's Practical Object Oriented Design in Ruby, this book should be your second ruby book, as it teaches you how to write good Ruby. New to Rails - Try the Hartl tutorial or Agile Web Development with Rails New to Command Line Apps - Build Awesome…
on “Ruby: The Last Eight Years” ↗…Concurrency in Practice (2006) is older but relevant and clearly describes concurrency on the JVM. A must read for any Java, Scala, Clojure, etc. software engineer; well-written, enjoyable, concise. Practical Object Oriented Design in Ruby by Sandi Metz is a fun read packed with good principles for working in Ruby that are applicable in general to object oriented programming. Smalltalk Best Practice Patterns by Kent Beck is worth a read…
on “Ask HN: What are some of the best written programming books?” ↗Practical object oriented design in Ruby by Sandi Metz is hugely popular, and not just inside the Ruby community, and rightly so, it's one of if not the greatest texts on programming I've read.
on “GitHub is undergoing a full-blown overhaul as execs and employees depart” ↗Sandi Metz has another book on what I would guess is a similar topic, Practical Object-Oriented Design in Ruby (colloquially, POODR). I found that book to be highly practical to daily development and I expect this to be no different. You might try googling for info about that book or perhaps try the mailing list…
on “99 Bottles of OOP” ↗Sandi Metz's Practical Object-Oriented Design in Ruby.
on “Ask HN: What's the best technical eBook you have read?” ↗I am currently reading Practical Object-Oriented Design in Ruby: An Agile Primer by Sandi Metz (http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-...) I am finding this book to be very helpful in understanding proper Object Oriented Design. It explains…
on “The Programming Books That Meant The Most To Me” ↗That video was excellent, thank you! Sandi Metz always comes up with great analogies that clear up the conceptual fog in my mind. Her book Practical Object Oriented Design in Ruby is a great read too.
on “Testing code is simple” ↗As always theres a middle ground between the extremes of MOCK-ALL-TEH-THINGS or mock nothing!! Since reading Sandi Metz's very fantastic "Practical Object-oriented design in ruby" it clear to me that mocking is great for checking that objects other the one under test receive messages sent by the methods being tested (makes tests easier to setup and write usually). If I find that…
on “Why I don't mock” ↗Practical Object Oriented Design in Ruby, by Sandi Metz Even if you code in a language other than Ruby, this book is quite easy to follow and chock full of great OO advice.
on “Ask HN: What are some good books to improve on object oriented design?” ↗I just finished a book called "Practical Object Oriented Design in Ruby." It teaches you how to build OO applications that are pleasant to maintain. I highly recommend it. http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-...
on “Organizing complexity is the most important skill in software development” ↗I only read bits and pieces of "Practical Object-Oriented Design in Ruby" by Sandi Metz, and the occasional article, but all of it has been surprisingly beneficial to my day to day coding.
on “Anti-if: The Missing Patterns” ↗I can recommend reading Practical Object-Oriented Design in Ruby by Sandi Metz to every programmer out there. This is so much important to understand basics of Code Design. Even if you think you will not be doing any functional or object-oriented programming, still,…
on “How Do I Learn Some Functional Programming?” ↗…helpful is reducing OOP to inheritance. I hardly ever have the chance to program in Ruby anymore (though I think it's quite a beautiful language and love the Ruby community), but I still find Sandy Metz's Practical Object-Oriented Design in Ruby to be an incredibly insightful look into "the good parts" of OOP. And for some really thoughtful OOP and functional discussions, watch Gary Bernhardt's Destroy All Software (check out, for example, "Functional…