99 Bottles of OOP

What this about?

The lessons work for programmers with a broad range of experience, from rank novice to grizzled veteran. Regardless of your background or preferred programming language, 99 Bottles of OOP will teach you techniques to make your code easier to understand, simpler to change, and more satisfying to contemplate.

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
  • Hedging against uncertainty by loosening coupling
    Developing a programming aesthetic


Sandi Metz

Hi, I'm Sandi and I'm a programmer.

I'm also a teacher, author and sometime consultant, but I teach, write and consult about programming so it all starts here.

In the past 30+ years I have written innumerable applications, a surprising number of which are still running today. Dealing with long lived applications has left me deeply biased towards creating practical solutions that produce working software that is easy to change.