Organize layers hierarchically while reducing module dependencies (coupling) and increasing code cohesion
Spaghetti Code: No code layer & consistency, complex dependency
Rather than developing linearly in response to ad-hoc requests, it's much faster in the long run to pursue accelerated development through structural design, even if it delays immediate development. An ideal step-function progress graph that continuously presents new structures is optimal
- Cohesion - Similar code with related responsibilities should be grouped together
- Coupling - Modifying one feature should require changes to only one piece of code
Software Architectures
ย
ย
Software Architecture Notion
ย
ย
ย
One thing that should be learned from the Bitter Lesson is the great power of general-purpose methods, of methods that continue to scale with increased computation even as the available computation becomes very great. - Richard Sutton
ย
ย
Unlike the subjective nature of "Easiness" and "Hardness," "Simplicity" and "Complexity" are objective concepts. "Simple" refers to an uncomplicated, one-fold structure, while "complex" means a state where multiple layers are intertwined. Easy/Hard are relative terms, and people choosing what seems easy doesn't necessarily guarantee a simple structure.
For simplicity, instead of interleaving complex structures, separate components and then compose them to connect simple elements.
ย
ย
ย


Seonglae Cho
