A common mistake: "Let's abstract this in case we want to replace it later."...


A common mistake: "Let's abstract this in case we want to replace it later."

Examples:

🚫 "Let's abstract React in case we switch JS frameworks."

🚫 "Let's abstract Tailwind in case we switch CSS approaches."

🚫 "Let's abstract Mongo in case we switch Databases".

This is…
To be clear: There’s nothing wrong with abstraction itself.

For example, creating a data access layer in front of the DB is often useful for a variety of reasons.

But avoid trying to make that abstraction tech agnostic “just in case”. It’s rarely necessary, and it eliminates the opportunity to use your current technology’s powerful proprietary features.

View original on X