Browse by topic
01Foundations
Objects and responsibilities
Assign behavior to the object that owns the relevant state.
SOLID and composition
Design for a concrete change that is likely to happen.
Design patterns
Use a pattern to resolve a named source of change.
Concurrency and correctness
Protect compound operations, not just individual fields.
02Design exercises
Design a parking lot
Separate allocation, payment, and occupancy.
Design a rate limiter
Represent time and atomic consumption explicitly.
Design an elevator controller
Separate request selection from movement safety.