3 ms·
I don't disagree but I think commonly you are missing one of two things that are necessary for a proper design: 1) time to design it 2) knowledge of exactly wh
by majormajor 2y ago
I don't disagree but I think commonly you are missing one of two things that are necessary for a proper design:
1) time to design it
2) knowledge of exactly what it needs to do today and in a year
Sometimes you're missing both.
In which case I think you can prevent contagion from being too terrible by enforcing smaller modules and single responsibility in a compositional way. That doesn't require as much knowledge of the future or time, but just requires you to avoid high-surface-area interfaces that end up with lots of behavioral variants controlled via parameters in a nesting-doll style. Instead, move your config/parsing/behavioral decisions to the edges of your logic instead of letting them seep into all your underlying models too.
- BobbyJo 2y ago> In which case I think you can prevent contagion from being too terrible by enforcing smaller modules and single responsibility in a compositional way. I would classify that as thoughtful interface design.
- njtransit 2y ago> 1) time to design it Do good interfaces take more time than bad interfaces to write? Does adding more time really make interfaces better? I find that engineering quality (of which interface design is one facet) is largely a function of talent and experience. Time doesn't usually play a factor. Writing good code takes the same amount of time as writing good code, for the most part.