HN Books @HNBooksMonth

The best books of Hacker News.

Hacker News Comments on
Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby Series)

Sandi Metz · 8 HN comments
HN Books has aggregated all Hacker News stories and comments that mention "Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby Series)" by Sandi Metz.
View on Amazon [↗]
HN Books may receive an affiliate commission when you make purchases on sites after clicking through links on this page.
Amazon Summary
The Complete Guide to Writing More Maintainable, Manageable, Pleasing, and Powerful Ruby Applications Ruby’s widely admired ease of use has a downside: Too many Ruby and Rails applications have been created without concern for their long-term maintenance or evolution. The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples. Sandi Metz has distilled a lifetime of conversations and presentations about object-oriented design into a set of Ruby-focused practices for crafting manageable, extensible, and pleasing code. She shows you how to build new applications that can survive success and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples, all downloadable from the companion Web site, The first title to focus squarely on object-oriented Ruby application design, Practical Object-Oriented Design in Ruby will guide you to superior outcomes, whatever your previous Ruby experience. Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues. This guide will help you Understand how object-oriented programming can help you craft Ruby code that is easier to maintain and upgrade Decide what belongs in a single Ruby class Avoid entangling objects that should be kept separate Define flexible interfaces among objects Reduce programming overhead costs with duck typing Successfully apply inheritance Build objects via composition Design cost-effective tests Solve common problems associated with poorly designed Ruby code
HN Books Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this book.
This is an all time favorite: Sandi Metz' Practical Object Oriented Design

It takes the cognitive overhead off of the programming language completely and focus on design principles in a really modern learning style.

This book definitely worth a read. Eventhough the examples are in Ruby, the concepts explained can be easily transferred to other languages as well.
Sandi Metz seems to have the oop teaching thing down. I looked at her 3 day course, to see what topics she covers there and it seems like it has mostly do with SOLID principles. Thanks for the suggestion, I've been looking at that book as well.
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.

>> How to build a structure that is easy to change and extend.

This is a very good book on subject, very clear:

If you want an amazing book on Design Patterns for ruby,
If you don't mind, I would like to share two more books that I have found to be extremely useful:

Illustrated C# 2012 (And previous version: 2010, etc).

Of all of the books I have read/browsed regarding C#, this has to be the clearest, most concise on that I have had the pleasure of reading. The material is presented in an understandable manner and the author provides the reason "why" you are doing something rather than just list a series of "do this" steps.

To me, this is the most important quality in a book: Succinctly convey your point so that the reader can truly learn what you are trying to get across.

I do have one other book to recommend for you Rubyists. While I say this is for Rubyists, the concepts in the following book are extremely helpful for other OOP languages as well:

I hope this helps; I have spent many hours going through books that sort of meander around the point, have extra fluff, etc. So when I come across two truly stellar gems like the above, I would like to share with others so that they, too, can save some time learning a programming language or paradigm.

I am currently reading Practical Object-Oriented Design in Ruby: An Agile Primer by Sandi Metz (

I am finding this book to be very helpful in understanding proper Object Oriented Design. It explains concepts that I have struggled with previously regarding Object Oriented Design and Programming.

So far, the main point I have taken from this book is: Pay more attention to the messages being sent between objects rather than focusing solely on classes.

As someone who is learning Ruby, it is taking me some time to understand these concepts. However, this book is providing me with some valuable insights into Object Oriented Design and Programming.

I'm really loving Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby Series)
HN Books is an independent project and is not operated by Y Combinator or
~ [email protected]
;laksdfhjdhksalkfj more things ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.