AKA Chadicus
"A public method is like a child: once you've written it, you are going to maintain it for the rest of its life!"
- Stefan Priebsch
Recap
Inject ALL dependencies with constructor
Avoid Unnecessary Public Methods
Avoid Logic Switch Parameters
All State Should be Encapsulated
No Mixed Parameter or Return Types
Make Classes FINAL by Default
Disable Cloning and Serialization by Default
Test ALL Scenarios