ИИ пишет код быстрее, чем когда-либо. Но «работает у меня» и «работает в проде» — разные вселенные. Ниже — где вайбкодинг обычно рассыпается и что закладывать, чтобы дожить до реального трафика.
Прототип оптимизирован не под то
Модель оптимизирует за то, чтобы код запустился здесь и сейчас. Продакшн требует другого: предсказуемости под нагрузкой, обратной совместимости, наблюдаемости и восстановления после сбоя. Эти свойства не появляются сами — их закладывают в архитектуру.
Классический провал — операции с данными без транзакций. В прототипе два запроса подряд «просто работают». Под конкурентным трафиком между ними вклинивается второй пользователь — и склад уходит в минус, а заказы дублируются.
// 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
Ни один из этих пунктов не «замедляет разработку». Они переносят стоимость с трёх часов ночи на понедельник днём — туда, где её дешевле платить.
Продакшн — это не момент запуска. Это набор свойств, которые вы сознательно решили гарантировать.
Вайбкодинг — отличный ускоритель. Но ускоритель нужно направить в архитектуру, которая переживёт первую тысячу пользователей. С этого и начнём.