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


Practical Object-Oriented Design in Ruby

Practical Object-Oriented Design in Ruby (POODR) is a programmers tale about how to write object-oriented code. It explains object-oriented design (OOD) using realistic, understandable examples.   POODR is a practical, readable introduction to how OOD can lower your costs and improve your applications.

POODR will help you:

  • Decide what belongs in a single class
  • Avoid entangling objects that should be kept separate
  • Define flexible interfaces among objects
  • Reduce programming overhead costs with duck typing
  • Successfully apply inheritance
  • Build objects via composition
  • Design cost-effective tests
  • Craft simple, straightforward, understandable code

If your code is killing you and the joy is gone, POODR has the cure.

Not only is the book 100% on-point, Sandi has an easy writing style with lots of great analogies that drive every point home.
— Avdi Grimm, Author of Exceptional Ruby and Objects on Rails
Finally read POODR. This is, hands down, the most pristine explanation of OO I’ve ever seen. Highly recommended!
— Xavier Defrang