Когда vibe coding упирается в продакшн

#ai-coding#vibe-coding#production

В последние полгода мой телеграм-канал завален постами типа «Запустил SaaS за выходные с помощью AI» или «Собрал MVP без единой строчки кода». Поначалу это вдохновляет — пока не увидишь, что происходит дальше.

Демо ≠ Продакшн

Vibe coding отлично справляется с созданием работающего демо. Ты описываешь идею в ChatGPT, получаешь код, запускаешь локально — и вуаля, будто продукт готов. Проблема в том, что демо-код и продакшн-код отличаются как черновой набросок от архитектурного проекта.

На практике это выглядит так:

// Типичный пример сгенерированного кода без domain model
function processOrder(input: any) {
  // ...40 строк неявных условий и магических чисел
}

Где рвётся цепь

Основной разрыв возникает в трёх точках:

  1. Отсутствие domain model — AI генерирует код, но не понимает предметную область. В результате бизнес-логика оказывается размазана по кодовой базе.

  2. Миф о self-healing коде — когда баги появляются в продакшне, оказывается, что «агент» забыл контекст прошлых решений и предлагает несовместимые изменения.

  3. Скорость vs Эволюция — то, что быстро собирается, обычно так же быстро перестаёт масштабироваться. Добавить новую фичу становится дороже, чем переписать с нуля.

Особенно болезнен переход от «это работает» к «это работает у 1000 пользователей одновременно». Здесь всплывают все проблемы с состояниями, race condition и неявными зависимостями.

Что делать вместо vibe coding

Не отказываясь от AI-инструментов вообще, стоит изменить подход:

  1. Model First — прежде чем открывать ChatGPT, рисуем core domain на бумаге. Хотя бы в виде схемы или описания bounded context.

  2. AI как код-ревьюер — используем Copilot не для генерации кода с нуля, а для предложения альтернатив уже написанной логике.

  3. Тесты до фич — если AI генерирует код, сразу требуем тесты к нему. Так хотя бы будет понимание, что именно должно работать.

// Осознанный подход: сначала интерфейсы
interface OrderProcessor {
  process(order: Order): Promise<Result>;
}
// Потом реализация с помощью AI

На своём последнем проекте я пробовал hybrid approach: core domain писал вручную, инфраструктурные вещи (типа API клиентов) делегировал AI. Результат — в 3 раза медленнее pure vibe coding, зато через месяц мы могли добавлять фичи без рефакторинга всей кодовой базы.

Vibe coding — отличный инструмент для валидации идей, но продакшн требует old school инженерии. Как показывает практика, баланс между скоростью и качеством всё ещё приходится находить вручную.


Попробуй сам: Cursor — AI-редактор для разработчиков.


Источник: https://dev.to/ivorharaald/why-vibe-coded-products-stall-the-moment-they-hit-production-3ibd