Игорь Градов
Игорь Градов
6 мин
ai

LLM-кодирование без архитектуры убивает проект за 3 месяца: опыт разработчика

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

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 или любой текстовый контракт для агента).
  • Время: базовая настройка занимает один вечер, полноценная обкатка потребует одну-две недели.

Пошаговая инструкция

  1. Разбейте проект на ограниченные контексты (bounded contexts). Каждый модуль получает собственное пространство имён. Названия классов и папок должны совпадать с терминами из постановки задачи. Для LLM это работает как встроенная документация: Core\Billing\Domain\Entity\CreditBalance сообщает, что это, где живёт и кого касается, ещё до чтения кода.

  2. Опишите правила архитектуры в текстовом файле для агента. Не «пожелания», а контракт: какой слой может обращаться к какому, где живут интерфейсы, где реализации.

# CLAUDE.md (фрагмент)
## Правила зависимостей
- Domain НЕ импортирует Infrastructure и Application.
- Application обращается к Domain только через интерфейсы.
- Infrastructure реализует интерфейсы Domain, но не вызывает Application напрямую.
  1. Подключите машинную проверку этих правил. Для 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
  1. Встройте проверку в пайплайн агента. После каждой генерации кода запускайте deptrac (или аналогичный линтер) автоматически. Если проверка падает, агент не может замержить изменение.

  2. Добавьте субагента-ревьювера. Отдельный вызов LLM с системным промптом (system prompt, базовая инструкция, задающая роль модели), который проверяет сгенерированный код на соответствие принципам SOLID и архитектурным правилам проекта, прежде чем код попадёт в основную ветку.

  3. Следите за принципом 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, но по моим наблюдениям они пока слабее в задачах рефакторинга крупных кодовых баз.

Мнение редакции dzen.guru

Этот опыт ценен не техническими деталями, а честностью диагноза. Я проверял похожий сценарий на небольшом проекте и могу подтвердить: LLM-агент без ограничений пишет код так, как стажёр без наставника. Быстро, уверенно и с предсказуемым результатом через месяц. Принципы SOLID, которые двадцать лет казались «академическим идеалом», при LLM-кодировании становятся практической необходимостью: либо вы кодифицируете правила и проверяете их машиной, либо платите токенами и своим временем за блуждания агента. Честная оговорка: настройка deptrac и архитектурных правил требует опыта, и если вы не разработчик, вам понадобится консультация того, кто понимает принципы проектирования.

Попробуйте генератор промптов dzen.guru

Создайте структурированный системный промпт для вашего ИИ-агента за пять минут, с правилами, ограничениями и форматом вывода.

Создать промпт

Главный вывод из полугодового эксперимента укладывается в одну фразу: LLM не отменяет инженерную дисциплину, а делает её последствия мгновенными. Плохая архитектура раньше мстила через годы, теперь через недели. И это, возможно, лучшее, что случилось с культурой кода за последнее десятилетие.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

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

Комментарии

Читайте также

Apple подала в суд на OpenAI: обвинения в краже тайн через бывших сотрудников
ai

Apple подала в суд на OpenAI: обвинения в краже тайн через бывших сотрудников

Apple в пятницу подала иск против OpenAI в федеральный суд Северного округа Калифорнии, обвинив компанию в систематической краже коммерческих тайн через бывших…

5 мин
ai

Патчи Microsoft станут объёмнее: ИИ находит уязвимости быстрее людей

Microsoft четвёртого июня объявила, что теперь применяет ИИ для поиска уязвимостей в Windows, и предупредила: каждый ежемесячный пакет обновлений безопасности…

4 мин
Ollama привлекла $65 млн: 14 человек обслуживают 8,9 млн разработчиков
ai

Ollama привлекла $65 млн: 14 человек обслуживают 8,9 млн разработчиков

Ollama, инструмент для локального запуска открытых ИИ-моделей на обычном компьютере, привлекла 65 миллионов долларов в раунде Series B под руководством Theory…

5 мин