Anti-patterns là solutions thoạt nhìn hợp lý nhưng thực ra gây hại về lâu dài.
- God Object/Class: một class biết và làm quá nhiều — vi phạm SRP, khó test, bottleneck khi scale
- Spaghetti Code: logic phân tán, tangled dependencies, không có structure rõ ràng
- Golden Hammer: dùng quen một tool/pattern cho mọi vấn đề dù không phù hợp
- Premature Optimization: tối ưu trước khi có evidence về bottleneck — lãng phí thời gian, tăng complexity
- Copy-Paste Programming: vi phạm DRY, bug fix ở một chỗ không fix chỗ khác
- Magic Numbers/Strings: hardcode
if (status === 3)thay vìif (status === OrderStatus.SHIPPED) - Shotgun Surgery: một thay đổi require sửa nhiều class nhỏ — ngược lại God Object
- Callback Hell trong JavaScript: Promise chain và async/await giải quyết
Nhận biết: code smell là dấu hiệu sớm của anti-pattern.