Some of these could serve as philosophical starting points but are a bit too dogmatic for &quot;rules&quot;.<p>1. DRY<p>I like the Rule of Three better, and even that is flexible. It&#x27;s important to find an underlying abstraction and not just extract common chunks of code because they happen to be similar.<p>4. No literals<p>Eh, not really. Most of the time I&#x27;d rather just see the value and not have to follow a reference to the definition of a constant.<p>5. Avoid dependencies<p>Yeah, probably true for application level settings like he describes, but don&#x27;t go crazy with it. The goal is to have clean readable code and tests. Its just a headache when everything is a FooImpl of a FooInterface, for instance, and not really a win for testability.