LLM-кодирование без архитектуры убивает проект за 3 месяца: опыт разработчика
Компания или автор не указаны в источнике как медиа-бренд, это личный опыт разработчика. Источник — авторский пост без указания издания и ссылки. Работаю строго по фактам из оригинала.

Разработчик полгода писал пет-проект почти целиком с помощью LLM-агентов (программ, которые сами пишут код по текстовому заданию) и обнаружил, что без чистой архитектуры нейросеть деградирует по той же кривой, что команда людей, только втрое быстрее.
Скорость, которую даёт LLM-кодирование, обманчива: без принципов SOLID и строгих границ модулей проект превращается в «болото» не за три года, а за три месяца, и никакой объём токенов это не компенсирует.
Опыт описан в авторском посте практика, который вёл Symfony-бакенд с Next.js-фронтом. Первый месяц фичи «вылетали за вечер», к третьему месяцу каждая новая функция ломала две старые. Ниже: почему так происходит, как это исправить и что из этого взять автору, маркетологу и предпринимателю в РФ.
Почему LLM-агент скатывается в хаос?
LLM (large language model, большая языковая модель) обучена на коде с GitHub. Статистически плохого кода там больше, чем хорошего. Модель знает не «как правильно», а «как обычно». «Как обычно» означает god-объекты (классы, которые делают всё подряд), копипасту и логику, размазанную по слоям.
Контекстное окно (объём текста, который модель «держит в голове» за один раз) работает как рабочая память стажёра:
- Низкая связность модулей: правка локальна, агенту хватает одного-двух файлов, результат предсказуем.
- Высокая связность: чтобы понять последствия, нужно прочитать 20 файлов. Агент читает 5, про остальные не догадывается и ломает то, что в контекст не попало.
Автор формулирует это так: архитектура не эстетика, а способ сократить объём контекста, необходимый для одного изменения. Код, удобный для LLM, это тот же код, который понятен новичку за пять минут, а не за две недели.
Что понадобится
- Любой LLM-агент для кодирования: Claude Code, Cursor, Windsurf или аналог с доступом к файловой системе проекта.
- Проект на языке со статической или полустатической типизацией (PHP/Symfony, TypeScript, Python с аннотациями).
- Инструмент контроля зависимостей: deptrac для PHP, аналогичные линтеры для других стеков.
- Файл архитектурных правил в корне репозитория (CLAUDE.md, AGENTS.md или любой текстовый контракт для агента).
- Время: базовая настройка занимает один вечер, полноценная обкатка потребует одну-две недели.
Пошаговая инструкция
-
Разбейте проект на ограниченные контексты (bounded contexts). Каждый модуль получает собственное пространство имён. Названия классов и папок должны совпадать с терминами из постановки задачи. Для LLM это работает как встроенная документация:
Core\Billing\Domain\Entity\CreditBalanceсообщает, что это, где живёт и кого касается, ещё до чтения кода. -
Опишите правила архитектуры в текстовом файле для агента. Не «пожелания», а контракт: какой слой может обращаться к какому, где живут интерфейсы, где реализации.
# CLAUDE.md (фрагмент)
## Правила зависимостей
- Domain НЕ импортирует Infrastructure и Application.
- Application обращается к Domain только через интерфейсы.
- Infrastructure реализует интерфейсы Domain, но не вызывает Application напрямую.
- Подключите машинную проверку этих правил. Для Symfony-проекта автор использует deptrac с двумя конфигурациями: одна проверяет границы между модулями, вторая проверяет слои внутри каждого модуля.
# deptrac-modules.yaml (упрощённый пример)
layers:
- name: Billing
collectors:
- type: directory
value: src/Core/Billing/.*
- name: Processing
collectors:
- type: directory
value: src/Core/Processing/.*
ruleset:
Billing:
- Billing
Processing:
- Processing
-
Встройте проверку в пайплайн агента. После каждой генерации кода запускайте deptrac (или аналогичный линтер) автоматически. Если проверка падает, агент не может замержить изменение.
-
Добавьте субагента-ревьювера. Отдельный вызов LLM с системным промптом (system prompt, базовая инструкция, задающая роль модели), который проверяет сгенерированный код на соответствие принципам SOLID и архитектурным правилам проекта, прежде чем код попадёт в основную ветку.
-
Следите за принципом YAGNI при LLM-кодировании. Модель любит генерировать «на всякий случай»: фабрику для класса с одной реализацией, конфигурируемость, которую никто не просил. Каждый лишний слой абстракции завтра станет лишним контекстом, мешающим следующим правкам. Явно запретите это в файле правил.
Автор описывает конкретную ситуацию. Задача: «добавь проверку баланса кредитов». Без архитектурных ограничений LLM-агент создал четвёртую реализацию той же проверки, чуть отличающуюся от трёх предыдущих. После внедрения deptrac и правила «вся логика кредитов живёт только в Core\Billing» агент находит существующий сервис и использует его, потому что иначе проверка зависимостей не пройдёт. Результат: одна реализация вместо четырёх, правка баланса в одном месте вместо охоты по всей кодовой базе.
- Полагаться только на текстовые правила в CLAUDE.md. Без машинной проверки агент нарушит контракт при первой же сложной задаче. Текстовая инструкция для LLM это пожелание, deptrac это барьер.
- Не читать сгенерированный код первый месяц. Автор признаёт: «я почти не читал код, только проверял, что работает». Именно это привело к накоплению дублей и god-объектов.
- Применять DDD к фронтенду. Автор прямо говорит: DDD предназначен для бакенда, где живут инварианты, транзакции и бизнес-правила. На фронте эта модель избыточна.
- Путать аккуратность с качеством. LLM-код часто выглядит «солидно», проходит поверхностное ревью, но содержит преждевременную абстракцию, которая через месяц станет балластом.
Что делать с этим прямо сейчас?
Автору Дзена и копирайтеру. Если вы используете LLM для генерации лонгридов или серий постов, принцип тот же: без структуры и шаблонов модель начнёт повторяться и противоречить себе. Заведите «архитектурный файл» для контента: тон, термины, запреты. Это ваш аналог deptrac для текста.
Разработчику и маркетологу с техническим продуктом. LLM-кодирование экономит время только при чистой архитектуре. Если ваш подрядчик говорит «ИИ ускорит разработку вдвое», спросите, как устроен контроль зависимостей. Без него ускорение обернётся техническим долгом через квартал.
Предпринимателю в РФ и СНГ. Все упомянутые инструменты доступны: deptrac бесплатен и работает локально, Claude Code и Cursor доступны через VPN или API. Из российских LLM для кодирования можно пробовать YandexGPT и GigaChat, но по моим наблюдениям они пока слабее в задачах рефакторинга крупных кодовых баз.
Этот опыт ценен не техническими деталями, а честностью диагноза. Я проверял похожий сценарий на небольшом проекте и могу подтвердить: LLM-агент без ограничений пишет код так, как стажёр без наставника. Быстро, уверенно и с предсказуемым результатом через месяц. Принципы SOLID, которые двадцать лет казались «академическим идеалом», при LLM-кодировании становятся практической необходимостью: либо вы кодифицируете правила и проверяете их машиной, либо платите токенами и своим временем за блуждания агента. Честная оговорка: настройка deptrac и архитектурных правил требует опыта, и если вы не разработчик, вам понадобится консультация того, кто понимает принципы проектирования.
Попробуйте генератор промптов dzen.guru
Создайте структурированный системный промпт для вашего ИИ-агента за пять минут, с правилами, ограничениями и форматом вывода.
Создать промптГлавный вывод из полугодового эксперимента укладывается в одну фразу: LLM не отменяет инженерную дисциплину, а делает её последствия мгновенными. Плохая архитектура раньше мстила через годы, теперь через недели. И это, возможно, лучшее, что случилось с культурой кода за последнее десятилетие.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Что такое ИИ-агент на практике: три правила, спасающие проект на ELMA 365 от хаоса
Компании, которые строят бизнес-модули на российской low-code-платформе ELMA 365, всё чаще передают рутину ИИ-агентам, но без жёстких правил агенты ломают…
Meta AI убрала слово «обучение» из условий, но юристы нашли лазейку для парсинга
Почему это важно Meta убрала из пользовательских условий слово «обучение», но юристы указывают: оставшаяся формулировка «разработка бизнес-продуктов»…

Что такое окно контекста в нейросети и как не терять решения в длинных проектах
Если вы месяцами ведёте блог или проект вместе с ChatGPT и при этом каждый новый чат начинается с нуля, значит, нейросеть потеряла контекст, и эта инструкция…
Комментарии