01
Architecture
Variants of the view–model separation, the coordinator that separates navigation responsibility, unidirectional data flow with state, actions and a reducer, dependency injection for testability, and modularization with package boundaries.
- 01 Architectural Patterns Three places the calculation can live relative to the screen, and six checks applied to the same correct and faulty version and measured in four separations.
- 02 The Coordinator Pattern Handing navigation to a coordinator separate from the views, and two checks that answer differently to a fault that opens the wrong screen after payment.
- 03 Unidirectional Data Flow Keeping state in a single central store that changes only through actions and a reducer, and measuring the separation of checks by feeding the same action sequence to two reducers.
- 04 Dependency Injection An object receiving the dependency it needs from outside instead of building it itself, and how what a fake dependency imitates determines the separation of a check.
- 05 Modularization Splitting the application into modules along package boundaries, the rule that feature modules depend only on the core module, and the blindness of a build-passes check to a boundary violation.