Goodreads helps you keep track of books you want to read.
Start by marking “99 Bottles of OOP” as Want to Read:
99 Bottles of OOP
Enlarge cover
Rate this book
Clear rating
Open Preview

99 Bottles of OOP

4.61  ·  Rating details ·  203 Ratings  ·  30 Reviews
"Everybody complains about the weather but nobody does anything about it." Likewise, everyone has an opinion about what good code looks like, but those opinions don't help you create it. This book fills that gap. It explains the process of writing good code, and teaches you to achieve beautifully programmed ends by way of extremely practical means.
What It's About

99 Bottle
ebook, 225 pages
Published 2016

Friend Reviews

To see what your friends thought of this book, please sign up.

Community Reviews

(showing 1-30)
Rating details
Sort: Default
Giuseppe D
May 13, 2017 rated it it was amazing
This is not just a book on OOP, it’s basically a full blown OOP course you can follow along at your own pace wherever you are. The domain is so simple that anybody can grasp it in a very short time, no need to know anything about bikes - looking at you, POODR… :D

The whole thing is quite ambitious, as Sandi and Katrina say in the preface “it turns out that everything you need to know about Object-Oriented Design (OOD) can be learned from the 99 Bottles of Beer song. Well, perhaps not everything,
Alessandro Baffa
Jul 24, 2016 rated it it was amazing
Really great book, I devoured it in 3 days. The style is very similar to Kent Beck's "Test Driven Development by Example": it describes concepts of object oriented, refactoring and good design working iteratively on a very simple exercise over several chapters (the 99 bottles of beers). I would have never thought that such a simple code could be source of so many challenges and inspiration ("horizontal refactoring" and "Flocking rules" are very interesting practices as well as kind of mindsets). ...more
Juan Ignacio
Apr 22, 2017 rated it it was amazing
Shelves: development
This is an astonishing book about OOP and good coding in general. It's great both for people that want to bring back memories but also for newcomers that just learnt coding (although they should certainly read the references that the book provides as well).
Steve Fenton
Jul 08, 2017 rated it it was amazing
Much like Kent Beck's TDD book, 99 Bottles is a chance to pair program with Sandi and Katrina. During the programming, you'll discover at least four fundamental techniques for refactoring, each of which justifies the purchase, along with concrete examples of how to apply the concepts to real code. I recommend this book to all object-oriented programmers, whether you are using Ruby (as per the specific examples in the book) or C#, Java, TypeScript, PHP, et al.
Bruno Sapienza
Sep 04, 2017 rated it it was amazing
Read it again after the last two chapters had been published. Fantastic book! as mentioned in previous comments this is a full blown OOP course! you may see familiar techniques in case you've been doing OOP for a while however, it totally worth reading. It's perfect to be read after the Practical Object-Oriented Design in Ruby (also from Sandy).
Jonathan Camenisch
Sep 24, 2017 rated it it was amazing
If there’s any fault with little book on object-oriented programming, it’s that it sometimes feels slow—especially if you already know where’s it’s headed. But that’s exactly what makes it great. It goes through the logic of every step in the thought process—even parts that are “easier done than said.” There’s nothing left to mysterious hand-waving here.

I’m going to go on record and predict that this will be a classic. It brings clarity to many of the misunderstandings that continue to surround
Nov 28, 2016 rated it it was amazing
Shelves: programming
Very clear writing and step-by-step walkthrough of refactoring, with explanations for why to make certain choices. If you get a chance to take her in-person workshop, definitely do that, but this is a good companion resource if you don't have that opportunity or need a refresher.
Jun 18, 2017 rated it it was amazing
The book describes a program that prints the 99 bottles song, and more importantly the detailed steps of refactoring the program. The task seems to be pretty simple, but in fact the average, basic code for the solution is far from ideal, and the book explains how to improve it. From this point of view, it's a perfect fit. I'm impressed by the detailed explanations of the refactoring process.
It's also interesting to compare it with this article: , which de
Mar 17, 2018 rated it really liked it
Sandi Metz's prior book Practical Object Oriented Design in Ruby (POODR) sets the bar very high, so I had higher expectations for this one, but it is still absolutely worth reading. It focuses on different strategies and tradeoffs when implementing a ruby program that spits out 99 Bottles of Beer song. It covers topics like naming, extendability, developer speed, changing requirements, abstraction etc..
Alexander Shagov
Feb 04, 2018 rated it really liked it
This book has written for a pretty wide audience (TBH I think that this audience is too wide). I'm not sure that it's worth reading for experienced software engineers, there are no things that will blow your mind, but I'll definitely recommend this book for junior/middle-level devs.
Please, guys, don't ignore practice! Try to write your own solution of 99 bottles and then see, how it differs from Sandi's solution. Even better if you'll be repeating refactoring step by step, as shown in the book.
Juraci Vieira
Jan 31, 2018 rated it it was amazing
This book is definitely among the top 3 best books about programming of all time. Sendi Metz and Katrina Owen lead you to the solution of a well know problem. Not too complex and not too shallow, just at the right level that allow them to exemplify how to make decisions about code design at every step of the way, all guided by tests. Can't recommend this enough, I will most certainly read multiple times.
Mike Gunderloy
Sep 03, 2017 rated it it was amazing
TDD and refactoring seem so obvious and straightforward when Sandi Metz walks you through them. This book almost convinces me to mend my evil habits and TDD everything. Almost, but not quite. Very much worth reading, but in the end I consider it another in a suite of useful techniques for developing good code, not the only way to do it.
Leandro López
Jun 07, 2017 rated it it was amazing
Fun and enlightening read. If you're a developer, regardless of your experience, this is a great book to have in your bookshelf. It certainly made me want to review my code and see where can I apply all these new knowledge.
May 26, 2018 rated it it was amazing
A very detailed book on how to use different practical techniques in TDD and refactoring to approach a seemingly simple problem but containing different level of abstraction. It would be great if the book can give an example of "Replace conditional with state/strategy" as in appendix.
Mar 15, 2018 rated it really liked it
If you're into Refactoring, this book is for you: really amenable and easy to follow, well written, focused and practice driven. The only bad thing I can say about it is that the same code snippets are repeated to much times, instead of just referencing it.
Lindsey Maddox
Feb 11, 2018 rated it really liked it
Great practical guide on refactoring by coding the 99 bottles problem. The explanations given for design choices are detailed enough for a relatively novice developer to understand. Reader is left with a number of easy to remember strategies for methodical refactoring.
Jun 03, 2018 rated it it was amazing
Alena Gilevskaya
Feb 08, 2018 rated it it was amazing
Reads like a detective novel.
Practical, detailed and very easy to understand.
Eduards Sizovs
Jul 23, 2017 rated it really liked it
Great book – it provides a step-by-step guide for a rigid software design process. An easy-to-read and practical advice on refactoring, TDD and object design.
Ian Dickinson
May 21, 2017 rated it it was amazing
Enjoyable writing style and very informative, for experienced and novice developers alike. It's worth having a go at the sample problem, it's deceptively not-as-simple as it seems!
Denis Lebedev
Oct 11, 2017 rated it it was amazing
A very gentle and exemplary intro to OOP, even though the code is in Ruby I would recommend this book to any developer who wants to learn / refresh their knowledge of core OOP principlies.
Roberto Hidalgo
Jan 31, 2018 rated it it was amazing
I’m fascinated by the way this book challenged many misconceptions of mine on so many levels. Sandi Metz not only writes truly elegant code, but is a fantastic guide through her mental process.
May 14, 2017 rated it really liked it
I will probably do more vertical refactoring even if horizontal refactoring allows you to write better tests.
Lucas Uyezu
Jun 03, 2018 rated it it was amazing
Excellent book, quick read. While it is best suited for beginners to intermediate level developers, it's recommended reading for everybody.
Nate Smith
Mar 20, 2017 rated it it was amazing
Great guide. Adding "Shameless Green" and the "Flocking Rules" to my toolbox.
Dim Ether
Mar 07, 2017 rated it really liked it
Shelves: technical
So far so good, waiting for the final version.
Kher Yee
Jan 06, 2017 rated it it was amazing
This review has been hidden because it contains spoilers. To view it, click here.
Johnny Graber
Aug 30, 2016 rated it it was amazing
Still in beta but already a great book on object oriented programming. A simple song of 99 bottles is all it takes for Sandi Metz and Katrina Owen to explain the design decisions one can take to turn a piece of code into an easy to understand solution.
Nov 25, 2017 rated it it was amazing
Shelves: favorites
Easily one of the best programming books I've ever read. Great overview of OOP and walk-throughs of best practices: from how to approach testing, refactoring and even naming things.
rated it it was ok
Apr 22, 2017
« previous 1 3 4 5 6 7 next »
There are no discussion topics on this book yet. Be the first to start one »

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »