The MVC Mistake
16 hours ago
- #Abstraction Design
- #Software Architecture
- #MVC Critique
- Abstractions require expert design, anticipating all purposes while forgetting all, as noted by Richard Gabriel.
- MVC layers represent technological boundaries, not logical concerns, leading to integrated concerns and a 100% blast radius for changes.
- Proper separation of concerns enables small blast radius changes; business domain concepts are more stable than technical ones.
- Modules based on technical boundaries increase coupling and reduce cohesion, hindering feature addition and removal.
- Onion architecture or inside-out design promotes locality of behavior, aligning with business fundamentals for better modularity.
- Dijkstra's layered architecture suggests each layer acts as a virtual machine, enhancing reusability and stability.
- Encouraging locality of behavior and onion architecture can improve software design by focusing on business domain stability.