Software design principles, post series
This series treats design advice as a set of failure modes. A principle earns its place only when it helps explain what breaks, what coupling grows, or what race appears under load.
Reading order
- SOLID principles, what each principle is trying to prevent.
- Composition over inheritance, why object graphs usually age better than class trees.
- TypeScript async mutex, serializing async writes when JavaScript concurrency looks single-threaded but is not.