Back to the bookshelf

Typographic jacket · original cover not fetched

FROM THE SHARED SHELF · 2006–2026 SAMPLE

Practical Object-Oriented Design in Ruby

Sandi Metz

8 readers recommend it across 6 discussions

Topics are model-inferred labels.

Keep it on your reading list

THE WORD OF MOUTH

What made it worth passing on?

Original Hacker News comments, in the readers’ own words.

cben
My recommendations are not exactly what you ask but what I suspect you'll enjoy if you're asking this. (1) "Understanding Computation" by Tom Stuart. Not "fundamental" as a deep textbook, but very approachable for programmers intro into a big chunk of CS, explaining deep ideas about languages using rigorous working clean code (in Ruby, no prior knowledge needed). I especially loved the first few chapters about what it means to define a programming languange and various kinds of formal semantics. (2) Designing Data-Intensive Applications, Martin Kleppmann. This gives you a phenomenally good survey of concepts and practice of distributed systems. This is more software engineering than pure CS, but in my view you can't approach the field of distributed systems without blending both anyway.…
cfeduke
Any book written by Charles Petzold is an enjoyable read, though particularly the non-MS specific titles Code and The Annotated Turing. Java 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 because the general principles are applicable to any OOP language. Clean Code by Robert Martin is excellent but a time commitment. (If you had to pick between SICP and Clean Code because time is at a premium I'd err on the side of Clean Code for practicality. Writing maintainable code is paramount.) The Joy of Clojure (Fogus/Houser) is excellent and mentally digestable even if you have no Lisp or Clojure background.
jrochkind1
Design Patterns: Elements of Reusable Object-Oriented Software http://www.amazon.com/Design-Patterns-Elements-Reusable-Obje... (http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/) Practical Object-Oriented Design in Ruby by Sandi Metz. http://www.poodr.com/