3 ms·
That’s one of the traps, every programmer will fall into at least once: copying some abstraction because someone else did it. I have not seen support of changin
by ivan_gammel 6y ago
That’s one of the traps, every programmer will fall into at least once: copying some abstraction because someone else did it. I have not seen support of changing underlying DB as a business requirement yet (well, outside of frameworks and platforms, of course). I have seen many times when developers designed architectures, created APIs or added buttons to user interfaces, because they felt it may be useful in the future, not because someone told them it will happen. That code was very different in quality, sometimes too abstract, sometimes a big multi-screen function doing plenty of magic. All of it had nothing to do with SOLID — it was always a violation of another principle: KISS. Keeping it simple, an engineering variant of Ockham’s razor, does not contradict or replace SOLID, it complements it, defining the scope of application of other principles. If your requirements are complex enough, you may need an abstraction — if you really need it, here are some guidelines. That’s it, now keep it simple.
- jcelerier 6y ago> I have not seen support of changing underlying DB as a business requirement yet (well, outside of frameworks and platforms, of course). ... and, you haven't ever seen a business requirement of what used to be a "software" to become a framework / plateform instead ? it happens all the time
- ivan_gammel 6y agoWell, that - "any" software becoming a framework - does happen, but not all the time. Why does this matter?
- gregmac 6y agoI've seen bits of this, and I've seen it happen in code bases that were built as "abstract" so its components could re-used. But I've never seen it happen in any way close to resembling what the original architect thought would happen, and as a result, all those abstractions and generic implementations not only added time to the mainline development, but in the end actually got in the way of the abstraction that was needed.