Fireship on YouTube · Open on YouTube
System design and architecture · Proficient · Lesson 59 of 98 · 11 min video, then about 4 hours of practice
Design patterns, and when not to use them
After this you can recognise the common patterns in existing code and judge whether introducing one would reduce complexity or add it.
Why it matters
Patterns are named solutions to recurring problems: strategy, observer, adapter, factory, decorator. Knowing the names helps you read code and discuss designs quickly. The skill that matters more is judgement. A pattern earns its place when it removes duplication or isolates something that changes; it is overhead when applied speculatively. Trap: pattern-driven design, where code is shaped to use patterns rather than to solve the problem.
How to use this resource
Ten patterns in ten minutes, a fast map of the vocabulary.
Go further
Go deeper