Effective OOP
Carl
Why Use Objects?
Dividing Work
Do Not Repeat Yourself
Thinking with Tests
Self Documenting Code
OPP Danger Zone
Too Much Magic & YAGNI
Inheritence vs Composition