Vibe coding sob o microscópio: o que a análise estática encontra em projetos de AI
A equipe da PVS-Studio começou a analisar projetos feitos com vibe coding — aqueles mesmos que vão “mudar o mundo”. O analisador estático encontra desreferencia
Вайб-кодинг — тренд, при котором разработчики используют ИИ для генерации кода без глубокого погружения в детали реализации. Команда PVS-Studio начала систематически анализировать такие проекты инструментами статического анализа — и первые результаты оказались предсказуемо интересными.
Что такое вайб-код
Термин «вайб-кодинг» (vibe coding) ввёл в обиход Андрей Карпатий в начале 2025 года. Он описал подход, при котором разработчик задаёт намерение, а ИИ пишет код — и программист принимает результат, не углубляясь в детали реализации. Скорость создания MVP при таком подходе резко выросла: проекты, на которые раньше уходили месяцы, теперь появляются за выходные.
Именно такие «революционные» репозитории — с громкими заявлениями и быстрым MVP — и попали в поле зрения PVS-Studio. Команда начала систематически выбирать публичные вайб-кодированные проекты и прогонять их через статический анализатор. Проблема в том, что скорость генерации и качество кода — разные вещи.
ИИ-модели хорошо воспроизводят паттерны из обучающих данных, но не понимают бизнес-логику, граничные случаи и инварианты конкретного проекта. Что работает на демо — не обязательно работает под нагрузкой.
Что находит анализатор PVS-Studio — один из старейших инструментов
статического анализа для C, C++, C# и Java. Типичные находки в вайб-кодированных проектах образуют предсказуемый паттерн: Разыменование нулевых указателей — код принимает, что объект всегда существует, не проверяя граничные случаи Неиспользуемые переменные и мёртвый код — ИИ генерирует «запасные» ветки логики, которые никогда не выполняются Сравнение переменной с самой собой — классическая опечатка в условных конструкциях Логические противоречия — условие, которое либо никогда не выполняется, либо всегда истинно * Утечки ресурсов — открытые файловые дескрипторы и сетевые соединения без закрытия Примечательно: многие из этих ошибок не проявляются на «счастливом пути» — именно поэтому вайб-кодированные проекты выглядят рабочими на демо, но ломаются при первой нестандартной ситуации в production.
Почему это системная проблема ИИ-ассистенты обучены на коде с
GitHub — а GitHub содержит огромное количество кода разного качества. Модели воспроизводят устоявшиеся паттерны, но не имеют механизма проверки корректности в конкретном контексте: они не знают о бизнес-инвариантах, ожидаемом поведении под нагрузкой и требованиях безопасности.
«Вайб-кодинг — это когда ты полностью капитулируешь перед ИИ», — описывал подход сам Карпатий.
Это не значит, что метод бесполезен. Вайб-кодинг отлично работает для прототипов, одноразовых скриптов и UI-заготовок. Но когда на таком коде строится «стартап, который изменит мир», статический анализатор из опции превращается в необходимость. Дополнительный риск — разработчик-«вайбер» нередко не понимает сгенерированный код достаточно глубоко, чтобы адекватно оценить находки анализатора. Предупреждение есть, что с ним делать — непонятно. Это создаёт иллюзию контроля: анализ запустили, список получили, проигнорировали — и пошли дальше.
Что это значит Вайб-кодинг снизил порог входа в разработку — и это хорошо.
Но он не поднял автоматически планку качества кода. Статический анализ остаётся фильтром, который отделяет «запустилось на моём ноутбуке» от «готово к production». Командам, которые серьёзно относятся к своим вайб-кодированным проектам, стоит добавить CI с анализатором как можно раньше — пока технический долг не стал основным продуктом.