Top all-time · #658
Sandi Metz
Personal blog · sandimetz.com/blogprogrammingdesign
Sandi Metz's personal blog at sandimetz.com covers programming and design. Since 2014, 95 different Hacker News readers have linked it 116 times, most often “The Wrong Abstraction (2016)”. The last post was in 2018, but the archive is still widely read.
Sometimes recommended · 7 of 40 sampled comments recommend it?
Why HN links it
HN readers link Sandi Metz's 2016 post "The Wrong Abstraction" as the standard argument that duplication is cheaper than a bad abstraction. Commenters also cite her 99 Bottles of OOP book and her talks on object design.
- Recommended for · 7 comments
- One commenter calls the related post "great" and says it "explains so much" about their work. Another says a Sandi Metz talk and book had the biggest influence
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Sandi Metz is a software developer and author focused on writing flexible object-oriented code in Ruby and Rails.
Most-linked posts?
- The Wrong Abstraction (2016)36 people · 41 mentions · first linked 2020-07-21
- The Wrong Abstraction (2016)22 people · 24 mentions · first linked 2017-02-26
- 99 Bottles of OOP now available in Python7 people · 7 mentions · first linked 2020-07-12
- The Wrong Abstraction6 people · 8 mentions · first linked 2016-02-04
- /99bottles3 people · 4 mentions · first linked 2018-05-23
- The Half-Life of Code3 people · 3 mentions · first linked 2017-06-02
- What Does OO Afford?3 people · 3 mentions · first linked 2018-02-22
- Breaking Up the Behemoth – How Applications Evolve2 people · 2 mentions · first linked 2017-09-13
- Why we argue style2 people · 2 mentions · first linked 2017-07-18
What Hacker News says?
She has a new book too. https://www.sandimetz.com/99bottles
Comment linking /99bottles
on “Goodbye, Clean Code”Submitted The Wrong Abstraction (2016) as a story · 717 points
HN discussionSandi Metz wrote a blog post about this: https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstracti... > The moral of this story? Don't get trapped by the sunk cost fallacy. If you find yourself passing parameters and adding conditional paths through shared code, the abstraction is incorrect. It may have been right to begin with, but that day has passed. Once an abstraction is proved wrong the best strategy is to…
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “Goodbye, Clean Code”Submitted The Wrong Abstraction (2016) as a story · 654 points
HN discussionDuplication is far cheaper than the wrong abstraction. https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstracti...
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “Goodbye, Clean Code”Submitted 99 Bottles of OOP now available in Python as a story · 255 points
HN discussionThe related blog post (I just found thanks to watching that and then searching for her site) is great too: https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction It explains so much of what has been bothering me about what I work on at work, and now I understand why and some of what to do about it.
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “Cognitive load is what matters”Submitted The Wrong Abstraction as a story · 220 points
HN discussionSeems like an instance of "The wrong abstraction" ? https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstracti...
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “Goodbye Microservices: From 100s of problem children to 1 superstar”Submitted Prefer duplication over the wrong abstraction as a story · 204 points
HN discussionThat coincides with the following: > Code is read many more times than it is written. Writing code costs something , but over time the cost of reading is often higher. Anyone who ever looks at a piece of code has to invest brain-power into figuring out what it does.[1] This is also noted in PEP8: > One of Guido's key insights is that code is read much more often than it is written. The guidelines provided here are i…
Comment linking /blog/2017/6/1/the-half-life-of-code
on “Thank You, Guido”Submitted 99 Bottles of OOP as a story · 164 points
HN discussionA good books on OOD are "Practical Object Oriented Design in Ruby" ( http://www.poodr.com ) and "99 bottles of OOP"( https://www.sandimetz.com/99bottles/ ) by Sandy Metz.
Comment linking /99bottles/
on “Ask HN: What language-agnostic programming books should I read?”Submitted The Wrong Abstraction (2016) as a story · 64 points
HN discussionYou're thinking of Sandi Metz: https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “Don't DRY Your Code Prematurely”Submitted The Half-Life of Code (2017) as a story · 63 points
HN discussionIts not about OOP but the probability that those two functions will diverge. Linked elsewhere in the comments too, this article ( https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction ) is probably better at articulating the point.
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “Don't DRY Your Code Prematurely”Submitted Code duplication is far cheaper than the wrong abstraction as a story · 60 points
HN discussionThis reads like a paraphrase of this widely circulated post from 8 years ago… https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “Don't DRY Your Code Prematurely”Submitted How Shall We Define Design? as a story · 9 points
HN discussionI don't know about anyone else, but I've been deeply unimpressed with the output of the google testing blog. This example is not wrong, but it's not particularly insightful either. Sandi Metz said it better here, 8 years ago https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction The testing pyramid nonsense is probably the worst one though. Instead of trying to find a sensible way to match the test type to the c…
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “Don't DRY Your Code Prematurely”Submitted What Does OO Afford? (2018) as a story · 3 points
HN discussion> I don't recall where I picked up from, but the best advice I've heard on this is a "Rule of 3" I know this as AHA = Avoid Hasty Abstractions: - https://kentcdodds.com/blog/aha-programming - https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “It's probably time to stop recommending Clean Code (2020)”Submitted The Wrong Abstraction as a story · 3 points
HN discussionI often find that DRY is in conflict with Conway's law[1]. It's almost always better to let Conway's law win. If I help write a build script for one team, I often copy and paste it into another's git repo to instead of trying to share it. It's often way better than factoring it poorly[2] or getting the two teams to coordinate on changes they need to make to it. Best to let the two copies diverge in that case. 1: htt…
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “DRY is an over-rated programming principle?”Submitted What Does OO Afford? as a story · 3 points
HN discussionThis is discussed in detail in "The Wrong Abstraction" by Sandi Metz https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction Quote follows: ---- The strength of the reaction made me realize just how widespread and intractable the "wrong abstraction" problem is. I started asking questions and came to see the following pattern: 1. Programmer A sees duplication. 2. Programmer A extracts duplication and gives it a na…
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “DRY is an over-rated programming principle?”Submitted The wrong abstraction as a story · 3 points
HN discussion"Duplication is far better than the wrong abstraction" - Sandi Metz https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction
Comment linking /blog/2016/1/20/the-wrong-abstraction
on “DRY is an over-rated programming principle?”Submitted Why we argue style as a story · 3 points
HN discussion