Stratified Design over Layered Design
Designing software with layers is common — and broken. It’s broken for two reasons:
- Layers suggest some form of abstraction; but layering very fundamentally is not about abstraction.
- Layering relies on functional…