3 HN users recommended this talk3 months2016–2024score 4
Years with an HN recommendation, 2007–2026
HN recommends it as a funny, smart and well-constructed talk on abstraction, duplication and object-oriented design.
Sandi Metz argues that hidden assumptions in code are missing concepts, and shows how to name and expose them so code is easier to understand and change. It covers null objects and messages in Ruby.
“as a talk it is fantastic - funny, smart, well put together.” (HN, 2024)
Couldn't agree more. Sandi Metz has an excellent talk touching on this topic. Developers exaggerated willingness to keep things DRY and elaborates a bit on why: it's one of the easiest things for a not-so-experienced developer to identify and one of the easiest things to teach. Edit: One of the best quotes from that talk is (paraphrased): "The wrong abstraction is a lot more expensive than duplicated code". [this video]
Sandi Metz on wrong abstractions versus duplication
I'd like to mention that despite OOP being in the title, I thought this book had a lot to teach that isn't specific to OOP architecture or OOP languages. Really, I think the star of the show is TDD and refactoring. For a short intro to Sandi's style and approach, I always recommend this 35min talk: [this video] Aside from any specifically educational content, as a talk it is fantastic - funny, smart, well put together.
Short intro to Sandi Metz's style; funny, smart, well constructed
The premise is the introduction is wrong. "so before we have written a single program in our language, before we know whether shared behaviour will be important in the applications that will be written in it" read the POODR book, or watch this [this video] it explains how shared behavior works without code duplication and why people tend to mess it up.
Explains shared behavior without duplication and common mistakes
Here's one talk about 'message' in Ruby: RailsConf 2015 - Nothing is Something [this video] But to me, this simply looks like Functional Programming done in an OOP mess.
You do have another solution that can lower the amount of conditions: Null Objects. These don’t fit every use cases, but they can allow you to express what’s missing, or not defined, or empty, and avoid nil pointers dereference or conditions to check the state. As Sandy Metz is used to say « Nothing is Something »[0] 0: [this video]
Video list and Hacker News comment labels from HackerTube (prompted by @karpathy), released under ODC-By 1.0, built on the open-index/hacker-news archive. Hacker News data is provided by Y Combinator; comments remain the work of their authors. Video titles, channel names and thumbnails belong to their creators and are shown via YouTube. HackerTube Watch is an unofficial edition. Data export of 2026-10-31.
5 Hacker News comments
From the HN archive; up to 20 kept per video, favoring different commenters. Recommendations first.
Citations, criticism and jokes