99 Bottles of OOPSandi Metz, Katrina Owen, T. J. Stankus

99 Bottles of OOP

by Sandi Metz, Katrina Owen, T. J. Stankus · first published 2016

16mentions
9recommended by
14HN commenters
2016–2026first – last mentioned

64% recommend36% neutral

Why HN recommends it

Walks through refactoring one small program step by step, teaching how to find the right data models and move logic to reduce duplication; praised as an introduction to refactoring for developers.

Summarised by Claude from recommending comments

Affiliate links. As an Amazon Associate I earn from qualifying purchases.

Mentions per year

20 2007: 0 mentions2008: 0 mentions2009: 0 mentions2010: 0 mentions2011: 0 mentions2012: 0 mentions2013: 0 mentions2014: 0 mentions2015: 0 mentions2016: 1 mention2017: 1 mention2018: 2 mentions2019: 2 mentions2020: 2 mentions2021: 2 mentions2022: 0 mentions2023: 0 mentions2024: 2 mentions2025: 2 mentions2026: 1 mention200720172026

What Hacker News says

  • donw · Jun 24, 2020 · Recommends

    …change as well; your top priority from 2019 is likely very different than it is today. That is why you build to embrace change, rather than barricade against it. As to how, I'd start with Sandi Metz's 99 Bottles of OOP: https://www.sandimetz.com/99bottles Learning to write readable code is also pretty important; Clean Code is a good starting point (https://amzn.to/3168z3A), but I'd be keen to know of any shorter books…

    on “Ask HN: How to avoid over-engineering software design for future use cases?” ↗
  • auxbuss · May 23, 2018 · Recommends

    There's an excellent discussion on this topic in the sample chapter, Rediscovering Simplicity[0], from Sandi Metz's book, 99 Bottles of OOP[1]. I often use it as a source for discussion with devs. [0] https://www.sandimetz.com/99bottles/sample [1] https://www.sandimetz.com/99bottles

    on “My favorite principle for code quality” ↗
  • donw · Dec 10, 2019 · Recommends

    …design systems and build code that can respond to future change, without having to know anything about what those future requirements might be. To that end, I highly recommend Sandi Metz's POODR[1] and 99 Bottles of OOP[2]. Yes, the title of the first book ends in "Ruby". Ignore that part, as it's probably the best primer I have ever seen on building code for the real world. I have also found that strong TDD -- and…

    on “Ask HN: How to improve code quality while maintaining decent velocity?” ↗
  • rimliu · Jun 5, 2017 · Recommends

    A 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.

    on “Ask HN: What language-agnostic programming books should I read?” ↗
  • ngcazz · Feb 2, 2020 · Recommends

    Her book with Katrina Owen “99 Bottles of OOP” lays out an even better case for this I think. Particularly useful is the introduced language to help measure the state of a codebase (“shamelessly green” vs “incomprehensibly concise” etc). Also quite…

    on “How to build apps pragmatically” ↗
  • lastofus · Apr 17, 2021 · Recommends

    Check out “99 bottles of OOP” by Sandi Metz for a fantastic beginner friendly book on OOP concepts. It does a great job of starting you from first principles and showing you not just the how, but the why of applying OOP to solve…

    on “Ask HN: How do I know if OOP is what I need?” ↗
  • lastofus · Jun 8, 2021 · Recommends

    "99 Bottles of OOP" by Sandi Metz does a fantastic job IMO of answering the first 3 questions listed. > Can I write a serious program without OO... Absolutely! See any program written in a functional only language, or…

    on “Ask HN: Any Tips for Understanding OOP?” ↗
  • graypegg · Jun 12, 2024 · Recommends

    Yes! I really like "99 Bottles of OOP" by Sandi Metz. I feel like it's a version of "Clean Code" that my brain actually aligns with. In a chapter, talking about different ways you could write a class that generates verses for the song 99…

    on “Don't Refactor Like Uncle Bob” ↗
  • dcre · May 17, 2025 · Recommends

    I took a version of this away from Sandi Metz’s 99 Bottles of OOP. It’s not really my style overall, but the point about moving logic forks up the call stack was very well taken when I was working on a codebase where we had added a ton of flags that got passed down…

    on “Push Ifs Up and Fors Down” ↗
  • backslash_16 · Mar 6, 2018 · Recommends

    …my call sources & targets. What I missed is the easy assurance from adding parameters to method calls, changing function/method/class names. I learned a lot about dynamic languages from a cool book - 99 Bottles of OOP

    on “Ask HN: Using Kotlin for web application back end” ↗
  • williadc · Jun 21, 2026 · Recommends

    The "99 Bottles of OOP" book mentioned at the bottom was an excellent introduction to refactoring. I highly recommend it if you struggle with finding the right data models for the problems you work on.

    on “Code duplication is far cheaper than the wrong abstraction” ↗
  • shortcord · Feb 10, 2019 · Mentions

    …interesting to see how design patterns apply to making video games. Next up after that I’m gonna finally finish Practical Object Oriented Design in Ruby by Sandi Metz. I started this one after reading 99 Bottles of OOP. Longer term project is to read through The Little Schemer and the other books in that series like The Reasoned Schemer, The Little MLer, etc.

    on “Ask HN: What technical books are you reading?” ↗
  • Kerrick · Nov 29, 2025 · Mentions

    …John Viescas this week. Sadly, my flub with "left inner join" was not a joke. For OOP, I've been on a whirlwind tour: OOA&D With Applications by Booch et al., Object Thinking by David West, POODR and 99 Bottles of OOP by Sandi Metz, Domain-Driven Design by Eric Evans, IDDD and DDDD by Vaughn Vernon, Design Patterns in Ruby by Russ Olsen, Clean Architecture by Robert C. Martin, and Smalltalk Best Practice Patterns by…

    on “Confessions of a Software Developer: No More Self-Censorship” ↗
  • crabmusket · Aug 9, 2021 · Mentions

    …you close that application it loses all the state. I think this is not an accident. This is where things go wrong for OOP really fast. This is a really good point. EDIT: I see you really did not like 99 Bottles of OOP, which is by the author of POODR. In that case maybe her way of explaining things doesn't agree with you and you should skip it!

    on “Growing object-oriented software vs. what I would do” ↗
  • exadeci · Jul 21, 2016 · Mentions

    As stated the book is not finished yet, two chapters are missing, so they can't print a not finished book: -- Please Note -- 99 Bottles of OOP is currently available in digital form only. This is version 0.2 beta-1, which contains about 45,000 words / 240 pages. Although it qualifies as a complete book as it stands, two chapters are pending.…

    on “99 Bottles of OOP” ↗

Keyboard shortcuts

/
Focus search
j / k
Next / previous book
Enter
Open focused book
Esc
Close / go back
g h
Go to Home
g t
Go to Top all-time
g m
Go to Most recommended
g r
Go to Rising
g f
Go to For You
?
Show this help