Every abstraction is a loan against future understanding. The cleverer it is, the higher the interest rate — and the longer it takes before you notice you can't quite afford the payments.
When the rate is worth it
A good abstraction hides a decision that is genuinely stable: something you're confident won't change. A bad one hides a decision that is still in motion, so every future change has to be threaded back through a layer that was supposed to make change easier.
- If you can name the thing it hides in a single sentence, it's probably a good abstraction.
- If explaining it needs a tour of three files, it's probably a loan you'll regret.
The test I keep coming back to: would a new teammate guess the behaviour from the name alone? If not, the cleverness is already costing more than it saves.