Anti-patterns
Solutions that look reasonable but cause problems. First the JavaScript-specific traps, then the classics that apply everywhere.
JavaScript-specific
Universal anti-patterns
God object
One class knows and does too much. Split it by responsibility (SRP).
Spaghetti code
Tangled control flow with no structure. Refactor into small functions with clear inputs and outputs.
Golden hammer
Using one familiar tool or pattern for every problem. Pick the simplest fit.
Premature optimisation
Optimising before measuring. Profile first, then fix the real bottleneck.
Copy-paste programming
Duplicated logic drifts apart. Extract shared code once the duplication is real (rule of three).
Magic numbers and strings
Unexplained literals. Use named constants or enums.
Singleton abuse
Global state disguised as a pattern. Prefer dependency injection with a single-instance lifetime.
Lava flow
Dead or experimental code nobody dares to remove. Delete it; version control remembers.
Saved in this browser only. Part of From code to production (0/5).