Sublime
An inspiration engine for ideas
Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck))
amazon.com
Object-oriented programming imposes discipline on indirect transfer of control.
Robert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Clean Craftsmanship: Disciplines, Standards, and Ethics (Robert C. Martin Series)
amazon.com
Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby Series)
amazon.com


if you use the principle of orthogonality, combined closely with the DRY principle, you'll find that the systems you develop are more flexible, more understandable, and easier to debug, test, and maintain.
David Thomas • The Pragmatic Programmer: From Journeyman to Master
