|
|
|
|
|
by hota_mazi
1919 days ago
|
|
> Were semialgebras a right abstraction, or over-engineering? I think that's missing the point. The criterion should be: is the code clear enough to be easily testable, easy to debug, and easy to evolve? I will take a wrong abstraction with the qualities listed above any day of the week. |
|
The problem with wrong abstractions, though, is that they do not work, especially when you make the next step on the roadmap.
I would say that clear, testable, evolvable code with little abstraction may be fine. OTOH boilerplate and copy-paste prevents easy or well-controlled evolution. The abstractions end up inlined and fused in the code, instead of being made visible, and become easy to miss a case when a concerted change is needed.