Вайбкодинг и AI

Нейросеть пишет код: где она ломается и как это ловить

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

Вячеслав Кочегаров25 октября 2026 г.

Нейросеть пишет код быстрее, чем ты успеваешь его прочитать. И это главная проблема, а не главное достоинство.

Код получается синтаксически идеальный, с аккуратными именами и комментариями. Он запускается. Он проходит твой ручной тест на трёх примерах. А потом падает на реальной нагрузке, и ты сидишь в логах в час ночи и пытаешься понять, где именно тебя обманули.

Я прошёл это много раз и заметил закономерность: нейросеть пишет код неправильно не случайно. Она ломается в одних и тех же четырёх местах. Если знаешь их — ловишь ошибку за пять минут вместо пяти часов.

Место первое: границы с чужими системами

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

У меня был показательный случай. Дёрнул выгрузку примерно на два миллиона записей из собранных групп — и упёрся в лимит API. Задача падает, результата ноль. Причём код был написан правильно: запрос корректный, обработка корректная. Просто в него не заложили мысль, что сервис на другом конце может сказать «хватит».

Нейросеть по умолчанию пишет счастливый путь. Она не спросит тебя: «а что делать, когда прилетит 429?» Она просто напишет цикл, который однажды упрётся.

Что делать: по каждому внешнему вызову задавай три вопроса вслух. Что будет при ошибке? Что будет при лимите? Что будет, если ответ придёт пустым, но со статусом 200? Пока на эти три вопроса нет ответа в коде, кода нет.

Место второе: долгоживущие задачи

Второй классический провал — процессы, которые идут дольше одного запуска. Нейросеть мыслит в пределах функции: начал, сделал, вернул результат. А в реальности тяжёлая выгрузка может идти сутки, и за это время произойдёт всё: перезапуск сервиса, потеря сети, тот самый лимит.

После той истории с двумя миллионами я переделал схему целиком и сделал задачи долгоживущими:

  • поймали лимит или флуд-бан — кладём задачу спать до снятия ограничений;
  • окно прошло — просыпаемся и едем с чекпоинта, ничего не теряя;
  • перезапустился сервис — прогресс сохранён, очередь сама доедает хвосты;
  • ретраи с бэк-оффом и идемпотентность — без дублей и без нервов.

Смысл в одном: снаружи всё должно работать так, будто никто и ничего не мешает. Нужно задаче несколько дней — пусть идёт несколько дней в фоне.

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

Место третье: повторы и состояние

Самые дорогие баги в моей практике — это не падения. Падение видно. Дорого стоит другое: система отработала дважды. Отправила два одинаковых сообщения, создала две сделки, списала деньги два раза.

Нейросеть почти никогда не закладывает идемпотентность по своей инициативе. Ей не приходит в голову, что твой обработчик могут вызвать повторно. А его вызовут: при ретрае, при двойном клике, при перезапуске очереди.

Что делать: в любой операции, которая меняет данные или что-то отправляет наружу, должен быть ключ, по которому можно понять — это уже делалось. Требуй его явно, в самом задании.

Место четвёртое: молчаливые допущения

Это самое коварное. Нейросеть не задаёт уточняющих вопросов, если ты её к этому не принудил. Она просто выбирает вариант и едет дальше. И выбирает всегда самый простой.

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

Мой рабочий приём простой: перед тем как что-то писать, я прошу модель перечислить допущения, которые она собирается сделать. Не код, а список: «я предполагаю, что...». Половину пунктов в этом списке приходится исправлять. И это те самые полдня отладки, которые ты не потратишь.

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

Ловушка обратной связи: 90 на 10

Есть ещё один способ ломаться — не в коде, а в голове.

Я два месяца просидел в поддержке своего же продукта. Это было похоже на работу авиадиспетчера в аэропорту, где у всех рейсов задержка: ты слышишь только крики, видишь только проблемы и начинаешь искренне верить, что небо падает на землю. Через месяц я поймал себя на мысли: «мой продукт — полное дерьмо, ничего не работает».

Это была ложная тревога. Лента тикетов — не репрезентативная выборка, это крик души. Довольные пользователи молчат, а пять раздражённых долбят так, что заглушают любую статистику.

Но опыт дал важную вещь — умение отделять шум от сигнала. Примерно 90 % жалоб — это боль конкретного человека, который не прочитал инструкцию. И есть 10 %, которые вскрывают реальные архитектурные проблемы. Моя работа была не сгореть, пока я их ищу.

Для вайбкодинга вывод такой: не переписывай систему после первой жалобы. Собирай жалобы в кучу, ищи повтор. Если больно одному — это драма. Если больно всем — это баг.

Чек-лист: как ловить поломки заранее

Прогоняю его по каждой задаче, где нейросеть пишет код за меня.

  1. Попроси список допущений до кода. Читай его как ТЗ и правь.
  2. Спроси про ошибки на каждой внешней границе. Лимит, тайм-аут, пустой ответ.
  3. Уточни, сколько это будет жить. Дольше минуты — нужны чекпоинты.
  4. Проверь повторный вызов. Запусти одно и то же два раза и посмотри на данные.
  5. Прогоняй на реальном объёме, а не на трёх строках. Почти все поломки вылезают на масштабе.
  6. Требуй логи с самого начала. Без логов ты не отлаживаешь, а гадаешь.
  7. Никогда не принимай код, который ты не прочитал. Хотя бы по диагонали, хотя бы структуру.

Последний пункт — единственная реальная разница между тем, кто собирает работающие сервисы, и тем, у кого «нейросеть написала ерунду». Модель не несёт ответственности за продакшен. Её несёшь ты.

Что из этого следует

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

Вся разница в том, что джун иногда скажет «я не понял задачу». Нейросеть не скажет никогда. Значит, вопросы задаёшь ты.

Если хочешь не просто получать код, а понимать, где он развалится, — этому я учу на курсе по вайбкодингу: ставить задачу, проверять результат, доводить до работающего сервиса. Начать можно и мягче — с бесплатного мини-курса.

// автор

Вячеслав Кочегаров

Разработчик и сооснователь сервиса ПКМаркетинг. Делаю CRM-интеграции, ботов и веб-сервисы, обучаю вайбкодингу.

Написать в Telegram →