15.6 · SOLID without dogma, and building a platform for many apps
Principles are heuristics for managing change. Applied with judgement they save you from a tangle; applied as rules they produce layers of nothing.
Mental model. Ask of every abstraction: what change does this make cheaper, and who pays for it? If you cannot name the change, you probably do not need it.
Principles
SOLID in practice.
- How do you apply the SOLID principles in Swift without over-engineering?
SOLID is five heuristics about managing change. Single Responsibility: a type should have one reason to change. A view model that formats strings, calls the…
At scale
A shared platform for many apps and teams.
- How do you run a shared mobile platform for many apps and teams: layering, ownership, versioning and governance?
A platform serves other engineers as its customers: dozens of teams and several apps share components (design system, networking client, auth, analytics…
More in Architecture & API design
- 15.1 · MVC, MVVM, MVP, VIPER, RIBs, TCA and Clean, and unidirectional data flow
- 15.2 · Coordinators, routers and dependency injection
- 15.3 · Feature modules and boundaries, and strangling a legacy codebase
- 15.4 · throws, Result, typed throws and mapping errors at boundaries
- 15.5 · Designing a Swift API: naming, ownership, documentation and evolution
- 15.7 · Effects and cancellation, modelling state, composing reducers
- 15.8 · Closure-based clients, dependency lifetimes, generic repositories and building the graph lazily
- 15.9 · Binary breaks from innocent changes, and what an import exposes
- 15.10 · Types that prevent misuse, error types for libraries, one-shot values and when to trap