Паттерны в эпоху AI
Нужны ли GoF, SOLID, GRASP, если LLM пишет код общими мазками? автор: именно сейчас они нужнее, чем раньше.
Главный аргумент
«AI выдаёт решение общими мазками. Без знания паттернов вы не сможете направить его и проверить.»
AI знает все паттерны из книжек, но не понимает применимость. Эксперимент автора:
- Скормил AI свою реализацию Unrolled List с 3 указателями (Head/Tail/Current)
- Скормил FixedQueue из Node.js для сравнения
- Описал идею: список сам может быть пулом (старые узлы возвращаются в head)
Результат: AI «не понимает, начинает делать Object Pool» — стандартный паттерн из книжки, игнорируя авторский инсайт.
Почему AI выбирает шаблоны
- LLM обучен на массиве кода → выдаёт самые частые решения
- Не понимает контекст: «список как пул» — концепция выше шаблона
- Применяет GoF-Object Pool по букварю вместо изящного решения
Что это значит для разработчика
- Паттерны = общий язык с AI. Можно сказать «сделай через Flyweight», и AI поймёт.
- Без знания паттернов нельзя проверить AI-код. Это «правильно» или «классический шаблон»?
- AI не придумает новый паттерн — только пережёвывает известные. Senior знает, когда выйти за рамки.
- Senior работа = моделирование, а не написание кода. Моделирование тренируется на паттернах.
Конкретные навыки эпохи AI
- Опознать паттерн в чужом коде (включая AI-сгенерированный)
- Подобрать паттерн под задачу — это AI делает плохо
- Знать границы применимости — когда паттерн НЕ нужен
- Распознать антипаттерны в AI-выводе (Singleton на каждый чих, ORM, middleware)
автор о ценности паттернов
«Паттерны полезны как тренажёры — на них можно оттренировать студентов»
«Между языком и фреймворком должно быть моделирование. Этот этап все пропускают»
«AI знает структуры данных, очереди, паттерн Strategy — но не понимает, что список сам может быть пулом»
Связь с архитектурой
Паттерны GoF — это уровень кода в одном процессе. На макроуровне:
- GRASP → общие принципы проектирования
- SOLID → принципы между классами
- GoF → конкретные структуры
- Enterprise Patterns / DDD → уровень приложения
- Архитектура (Clean, Hexagonal) → уровень системы
Senior должен видеть все уровни. AI работает только на нижних — выполнение по описанию.
Главные тезисы автора
- Паттерны = общий язык с AI — без них вы не контролируете генерацию.
- AI не понимает применимость — знает синтаксис, не семантику.
- Senior = моделирование, тренируется на паттернах.
- AI без паттернов не построит «золотое решение» — он делает «типичное».
- Тренажёры из паттернов заменить нечем — теория без практики бесполезна.
- Паттерны устойчивее фреймворков — фреймворк меняется каждые 3 года, паттерны живут 30 лет.
🎓 Источники
- 🎓 Зачем GoF, SOLID, GRASP если есть AI · 2025-12-15
- Эксперимент с Unrolled List
- AI сваливается в Object Pool из книжки
- Не понимает, что список сам может быть пулом
- 🎓 AI Заставляем Cursor рефакторить код на монадах · 2025-12-07
- 🎓 Важность паттернов для консалтинга, командной работы и AI · 2025-05-03
- 🎓 Creating AI Skills for GoF Creational Patterns · 2026-03-19
- 🎓 Создание AI Skills для GoF Structural Patterns · 2026-03-20
- 🎓 Краткий обзор GoF Patterns · 2025-04-07
- Паттерны как тренажёры