Over-abstractor: A dev who immediately wants to abstract any new library...
Over-abstractor: A dev who immediately wants to abstract any new library we're considering.
Examples:
"Let's create a wrapper around React in case we want to move to Vue later."
"Let's wrap MUI in case we want to move to Shadcn later."
Don't. Wrapping is rarely worthwhile.
Wrapping means we have to find the lowest common denominator interface between the thing we're wrapping, and the things we might move to.
That's a huge problem, because we rarely know what we're moving to. So, the ideal wrapper interface is totally unclear. It's just a guess.
But the wrapper does have many immediate costs:
- We have to create, maintain, and learn an abstraction.
- We can't leverage the full power of the tool we selected, because we have to hide some of it behind a speculative "migration-friendly" API that hides any "unique" features that may not port well.
- When we experience a bug, we need to investigate our wrapper too. It's another layer to understand and thus, another layer of risk and complexity.