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

Прототип оптимизирован не под то

Модель оптимизирует за то, чтобы код запустился здесь и сейчас. Продакшн требует другого: предсказуемости под нагрузкой, обратной совместимости, наблюдаемости и восстановления после сбоя. Эти свойства не появляются сами — их закладывают в архитектуру.

Классический провал — операции с данными без транзакций. В прототипе два запроса подряд «просто работают». Под конкурентным трафиком между ними вклинивается второй пользователь — и склад уходит в минус, а заказы дублируются.

// fragile — no transaction, no lock
$order = Order::create($data);
Inventory::decrement($sku, $qty);

// safe — atomic and locked
DB::transaction(function () use ($data) {
    $order = Order::create($data);
    Inventory::where('sku', $data['sku'])
        ->lockForUpdate()
        ->decrement('qty', $data['qty']);
});

Что закладывать с первого дня

  • Версионируемые миграции схемы, а не правки руками
  • Идемпотентные деплои и предсказуемый откат
  • Логи и метрики с первого коммита
  • Бэкапы и проверенное восстановление
  • Явные границы модулей и контракты API

Ни один из этих пунктов не «замедляет разработку». Они переносят стоимость с трёх часов ночи на понедельник днём — туда, где её дешевле платить.

Продакшн — это не момент запуска. Это набор свойств, которые вы сознательно решили гарантировать.

Вайбкодинг — отличный ускоритель. Но ускоритель нужно направить в архитектуру, которая переживёт первую тысячу пользователей. С этого и начнём.