Categories
What each kind of problem is about, with a short before-and-after example.
- CreationalWho creates objects, and how much the rest of the code has to know about it.
- StructuralHow objects fit together: wrapping, adapting and composing them.
- BehavioralWho is responsible for what, and how objects talk to each other.
- Design PrinciplesThe rules of thumb that keep classes small, focused and easy to change.
- Modern & EnterprisePatterns from everyday business applications: values, repositories, retries and events.
- Code SmellsSmall, recognisable warning signs, and the refactorings that remove them.
- ConcurrencyCode that has to stay correct when many threads run it at once.
- ArchitectureWhere business rules live, and which way dependencies point.
- LLD CapstonesSmall systems to redesign end to end, in the style of machine-coding rounds.
- Bug HuntA support ticket with a design flaw behind it. Fix the cause, not just the symptom.