4 ms·
I don't think what you're saying is in conflict with the OP: > The complex problem comes later, and it’ll be better served by the composition of simple solutio
by coryfklein 8y ago
I don't think what you're saying is in conflict with the OP:
> The complex problem comes later, and it’ll be better served by the composition of simple solutions than with the application of a complex solution.
Complicated problem domains can be made into simple ones by breaking them down into their constituent components. You can solve time zones by having 5000 Rube-Goldberg-esque lines of if/else-if statements, or you can organize the system into simple components that build on each other.
At any given component or level the problems are clear, simple, and identifiable, and the complexity arises as the components join to form abstractions upon which higher levels operate.
- AstralStorm 8y agoOr you can end up with a mishmash of components instead of statements. Premature abstraction is a kind of premature optimization, except you're not buying performance. Bad abstractions tend to stay in for a long time. What matters is clear delineation between functional components and weak binding, so that internals can change, and that the interfaces are relatively minimal.