4 ms·
It is largely true. One has to start out with a clear definition of the problem they are trying to solve, regardless of whether they are laying the foundations
by bluetomcat 6y ago
It is largely true. One has to start out with a clear definition of the problem they are trying to solve, regardless of whether they are laying the foundations of a software architecture or implementing an incremental change. The more you understand the problem at hand and its inherent complexity, the more you can avoid any accidental complexity along the way. Good architecture is about picking a set of interdependent, multi-layered abstractions that provide a reasonable blend of efficiency and brevity of expression, for tackling a problem domain. Universal solutions to a wide class of problems almost invariably end up as a mess.
- krychu 6y agoDo you think lower levels should be dependent on higher levels as well?
- bluetomcat 6y agoI meant "interdependent" in the sense that lower-level abstractions should also be geared for the problem at hand and should expose a higher-level interface which satisfies the particular requirements of higher-level abstractions.