Reviews

99 Bottles of OOP by Katrina Owen, Sandi Metz

jamiestrachan's review

Go to review page

5.0

I expect to look back on this book as one of the most influential in my growth as a programmer. It takes two topics that I thought I understood - TDD and OOP - and showed me that but only was my knowledge flawed but that the true potential of these concepts is more than I ever realized. Incredibly clear and well-paced, this is one of the best technical books I've ever read in terms of teaching both practical techniques and abstract concepts.

samuelodan's review

Go to review page

challenging informative inspiring medium-paced

5.0

dasneuling's review

Go to review page

hopeful informative inspiring lighthearted medium-paced

5.0

brunjact's review

Go to review page

4.0

This is a book about Object-Oriented concepts, or should I say processes? It presents the reader a series of doctrines to follow which will improve the quality of the code.

The book begins by requesting the reader to write code which will produce the lyrics to the 99 Bottles of Beer song. How often do we get this? It then guides the reader on evaluating its own code. The book also presents four different solutions to its own challenge and uses them, by a series of refactoring, to present the topics of the book.
The book can be as practical as the reader wants it to be; either by passively reading the authors' approach to solve this problem, or; following along the book and apply those changes to the code directly.

I think this extract from the book makes a good td;dr summary: "Strive for simplicity. Don't abstract too soon. Focus on smells. Concentrate on difference. Take small steps. follow the Flocking Rules. Refactor under green. Fix the easy problems first. Work horizontally. Seek stable leading points. Be disciplined. Don't chase the shiny thing."

I read the Ruby version of the book and I think it's worth re-reading it in the Javascript version. Mostly because I use both languages. The concepts in this book are language agnostic and can be used on any object oriented programming language. One can take the exercise a little bit further and use it with some other OO language.

kwugirl's review

Go to review page

5.0

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.

bookshika's review

Go to review page

5.0

One of the most clear and concise books in OOP I've read so far. Really recommend, even if you're not familiar with Ruby as a programming language, the concepts are useful.

kejadlen's review

Go to review page

4.0

Did this book again as a book club for work. Maybe the 2nd edition has been significantly updated or I didn't actually finish the whole thing last time, but either way, it's still a wonderful book for a software developer that's had a few years under their belt. Sandi and co. fall very much towards the mockist/unit-testing end of the spectrum, but even if one's personal preference leans the other direction, 99 Bottles is still very much work reading to see how interleaved the mockist style is with code design.

It's one of the few actually practical books to read on programming (especially wrt. refactoring and design) as a craft, and I'd recommend it without reservation for pretty much any type of developer, regardless of language.

cvortmann's review

Go to review page

5.0

Sandy Metz already had one of the best books in Object-Oriented with the Practical Object-Oriented Design book. Now she has 2 books.

This is one of the few books that don't push testing to an Appendix. TDD is the part of the book that enables all the subsequent refactorings. It may seem as a lot of work to follow each small step but I suggest you read the book with the editor at your side and try them after each chapter and without looking them up. The Flocking Rules seem too simple to work albeit they do! Every time. Refactoring will feel, suddenly, natural.

This book teaches how to be patient and pay extreme attention. You'll grasp how to remove duplication by focusing on higher level abstractions instead of simply text that look alike. And at each step the domain will get crispier. There will be new concepts that had been hidden and are now clear by simply applying the refactoring steps tirelessly.

You'd also understand, at the end of the book, why you should refactor before working in a new feature and not after: it will make the feature way easier and clearer for future readers.

This book only get one thing wrong: it states that TDD finally got mainstream. Sadly, that's far from being true.

puzzlebound's review

Go to review page

3.0

Useful insight into code development. Using the 99 Bottles of Beer song as a framing device worked very well. Test Driven Development is not something I'm very familiar with and I could use more instruction on that piece of the framework.

ijdickinson's review

Go to review page

5.0

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!