99 Bottles of OOP

"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 Bottles of OOP is a practical guide to writing cost-effective, maintainable, and pleasing object-oriented code. 

It explores: 

  • Recognizing when code is "good enough"

  • Getting the best value from Test-Driven Development (TDD)

  • Doing proper refactoring, not random "rehacktoring"

  • Locating concepts buried in code

  • Finding names that convey deeper meaning

  • Safely altering code by following the "Flocking Rules"

  • Simplifying new additions with the Open/Closed Principle

  • Avoiding conditionals by obeying the Liskov Substitution Principle

  • Making targeted improvements by reducing Code Smells

  • Improving changeability with polymorphism

  • Manufacturing role-playing objects using Factories

What Makes It Unique?

We are practical people. We love beautiful code but we're committed to getting things done. 99 Bottles of OOP enables both of these desires. It teaches a practical technique for getting things done that leads, naturally and inevitably, to beautiful code.

This book contains an extended refactoring, and it details the rationale behind every change. It is a hands-on workbook rather than a list of theoretical ideas. It explains how to use the principles of object-oriented design to guide, not just the final arrangement of code, but each decision about what line of code to write next.

It teaches the theory of what good OO looks like, but even better, it supplies step-by-step guidance about how to achieve it.

Who Should Read It?

The lessons work for programmers with a broad range of experience, from rank novice to grizzled veteran. The code examples are written in Ruby, but this book is not about Ruby--it's about object-oriented programming and design. Regardless of your background, applying these techniques will make your code easier to understand, simpler to change, and more satisfying to contemplate.

What's In The Current Version?

As of September 3, 2017, the current release is version 1.0.1. This is the complete book, and is nearly 70,000 words long (longer than most novels, about average for a mystery, and, sadly, shorter than most thrillers).


Read the sample.

Peruse the reviews.

Listen to the Why Are Computers podcast.

Can’t afford the book? Send us a postcard.

Found a mistake? Please submit errata.