—Recognition that the less code you write the better.
In The Problem You Solve Is More Important Than The Code You Write, Fagner Brack reminds us that not writing code is a better solution. Fagner’s thesis is that choosing what to write is secondary to the problem you solve.
There’s a difference between encapsulation of complex logic and abstraction of useful knowledge. Sometimes, information should be made explicit to be comprehensible. If you abstract them, they can have the opposite effect and be harder to understand.
Abstraction as a tool of obsfucation.
This is an elegant framing of a problem I keep running into: When do you stop introducing abstraction? Fagner provides the best answer I’ve seen to this question: don’t introduce an abstraction if it obscures important information. Or impedes understanding.
A corollary, to Fagner’s thesis then might be that the abstraction employed to create an implementation must draw from and not obscure domain knowledge.