Post-Architecture: Premature Abstraction Is the Root of All Evil
If you find yourself in this situation, resist being driven by sunk costs. When dealing with the wrong abstraction, the fastest way forward is back . Do the following:
- Re-introduce duplication by inlining the abstracted code back into every caller.
- Within each caller, use the parameters being passed to determine the subset of the inlined code that
The Wrong Abstraction — Sandi Metz
An issue I tend to see in my travels through the world of software engineering is over-engineering. Shocking, I know. I’m not the first developer to point this out, nor will I be the last.
Deliver the Bare Minimum
All non-trivial abstractions, to some degree, are leaky.