Идея без жаргона
Design patterns — именованные подходы к повторяющимся задачам и tradeoff'ам. Это язык общения и стартовая точка, а не шаблон «вставь и будет maintainable».
Зачем
- Общий словарь на ревью и собесе.
- Подсказка структуры, когда силы (forces) задачи уже ясны.
Когда не надо
Если достаточно прямой функции, объекта или модуля — не тащи Observer/Factory «на вырост». Преждевременная абстракция хуже дублирования на 10 строк.
Итог: паттерн полезен, когда проблема реально есть; иначе — лишняя косвенность.