4 ms·
> Over-engineering is an attempt to predict the future, while quality-engineering is maximizing extensibility. The article is written as if extensibility is sw
by Zababa 3y ago
> Over-engineering is an attempt to predict the future, while quality-engineering is maximizing extensibility.
The article is written as if extensibility is switching databases, but I've also encountered cases where extensibility is adding features, and all the indirection due to abstractions around databases, configuration, caching, view layer, etc makes it harder to extend.
There's also the classic failure mode of "designing an interface but using only one implementation", which can lead to its friend "the read-and-write interface is leaky and we can't switch data stores!".
And since we're on this, we may also talk about the "every service in this company uses MySQL and Spring Boot but for this small one I chose to use SQLite and Go and now we are in Hell".
- pdimitar 3y ago> "every service in this company uses MySQL and Spring Boot but for this small one I chose to use SQLite and Go and now we are in Hell". Not sure I understand why is that a bad thing?