Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Practical Object-Oriented DesignSandi Metz

    Practical Object-Oriented Design

    Sandi Metz · 2018

    The Complete Guide to Writing Maintainable, Manageable, Pleasing, and Powerful Object-Oriented Applications Object-oriented programming languages exist to help you create beautiful, straightforward applications that are easy to change and simple to extend. Unfortunately, the world is awash with object-oriented (OO) applications that are difficult to understand and expensive to change. Practical Object-Oriented Design, Second Edition, immerses you in an OO mindset and teaches you powerful, real-world, object-oriented design techniques with simple and practical examples. Sandi Metz demonstrates 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 in the easy-to-understand Ruby programming language, all downloadable from the companion website, poodr.com. Fully updated for Ruby 2.5, this guide shows how to Decide what belongs in a single 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 Whatever your previous object-oriented experience, this concise guide will help you achieve the superior outcomes you’re looking for. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

    Software EngineeringProgramming
    Open LibraryAmazon
    Stats for nerds
    14recommend
    17mentions
    15people
    2012–2026years
    94% recommend6% neutral

    Mentions per year

    20122014201620182020202220242026

    What Hacker News says

    1. skreemJun 2026
      Nice to see Sandi mentioned! If anyone liked her philosophy / writing style I highly recommend you check out her books

      I read “Practical Object-Oriented Design (POODR)” ages ago at this point, but it reshaped how I approached OOP

      Granted… OOP as a default paradigm has fallen out of favor (at least for me), but it’s still everywhere & won’t be going away. She gives a great framework for making it sane

      thread
    2. RapzidJan 2026
      The Ruby ecosystem was particularly bad about "DRY"(vs WET) and indirection back in the day.

      Things were pretty dire until Sandi Metz introduced Ruby developers to the rest of the programming world with "Practical Object-Oriented Design". I think that helped start a movement away from "clever", "artisanal", and "elegant" and towards more practicality that favors the future programmer.

      Does anyone remember debugging Ruby code where lines in stack traces don't exist because the code was dynamically generated at run time to reduce boilerplate? Pepperidge Farm remembers.

      thread
    3. andrei_says_Jun 2024
      If working with object oriented languages, I recommend https://www.poodr.com/

      Practical Object-Oriented Design, An Agile Primer Using Ruby (POODR)

      thread
    4. breckenedgeSep 2023
      Honestly, PragProg gets you pretty far from a mentality perspective. Practical Object Oriented Design is a nice skills book. You might also try The Mythical Man Month.
      thread
    5. belfalasJan 2023
      Many more beyond this but these are my for sures.

      People / Soft Skills:

      * How to win friends and Influence People - Dale Carnegie

      * Secrets of Consulting - Gerald Weinberg

      * Peopleware - Tom DeMarco & Timothy Lister

      * Nurtured by Love - Shinici Suzuki

      * Turn the Ship Around! - David Marquet

      * Never Split the Difference - Chris Voss

      http://dhemery.com/articles/resistance_as_a_resource/

      http://dhemery.com/articles/managing_yourself_through_change...

      Macro Skills:

      * Toyota Production System - Taiichii Ohno

      * Workplace Management - Taiichii Ohno

      * Thinking in Systems - Donella Meadows

      * Fifth Discipline - Peter Senge

      Agile:

      * Extreme Programming, Explained (2nd ed.) - Kent Beck (the annotated bibliography is a goldmine)

      * Chaos: Making a New Science - James Gleick

      Programming:

      * Implementation Patterns - Kent Beck

      * Test-Driven Development, By Example - Kent Beck

      * Refactoring (both editions) - Martin Fowler

      * Refactoring to Patterns - Joshua Kerievsky

      * Practical Object Oriented Design - Sandi Metz

      * Functional Programming in Scala - Chiusano & Bjarnason

      * Growing Object-Oriented Software, Guided By Tests - Freeman & Pryce ("The Goose Book")

      * Modern Java in Action - Raoul-Gabriel Urma

      * Java Concurrency in Practice - Brian Goetz

      * Grokking Algorithms - Aditya Y. Bhargava

      Architecture:

      * Righting Software - Juval Lowy

      * Release It! - Michael Nygard

      * Site Reliability Engineering - Beyer, et al. ("The SRE Book”)

      * Domain Driven Design - Eric Evans

      * Introduction to Permaculture - Bill Mollison and Mia Slay

      * Fun with a Pencil - Andrew Loomis

      Design:

      * All books by Edward Tufte, especially “The visual display of quantitative information”

      * The Elements of Typographic Style - Robert Bringhurst

      * Understanding Comics - Scott McCloud

      * Design of Everyday Things - Don Norman

      * Notes on the Synthesis of Form - Christopher Alexander

      * The Timeless Way of Building - Christopher Alexander

      thread
    6. LAC-TechNov 2022
      One good thing about technical ebooks is that they know their audience can just pirate it if they want, so they don't bother with DRM. Was happy to pay for my digital copy of "Practical Object Oriented Design".
      thread

    Related

    Cover of Practical Object Oriented Design In Ruby
    2012–2025

    Practical Object Oriented Design In Ruby

    Sandi Metz
    46 recommend · 72
    Cover of Object-oriented software construction
    2010–2026

    Object-oriented software construction

    Bertrand Meyer
    22 recommend · 53
    Cover of Designing Data-Intensive Applications
    2014–2026

    Designing Data-Intensive Applications

    Martin Kleppmann
    457 recommend · 846
    Cover of Object-oriented programming
    2010–2026

    Object-oriented programming

    Peter Coad
    3 recommend · 5
    Cover of Domain-Driven Design
    2007–2026

    Domain-Driven Design

    Eric Evans
    104 recommend · 252
    Cover of Object-Oriented Software Engineering
    2012–2024

    Object-Oriented Software Engineering

    Ivar Jacobson
    3 recommend · 5
    Cover of Object-Oriented Analysis and Design with Applications
    2012–2025

    Object-Oriented Analysis and Design with Applications

    Grady Booch
    7 recommend · 13
    Cover of Growing object-oriented software, guided by tests
    2010–2026

    Growing object-oriented software, guided by tests

    Steve Freeman
    43 recommend · 64