Vibe Coding: программирование без знания кода
Вольный перевод оригинальной статьи: A New Worst Coder Has Entered the Chat: Vibe Coding Without Code Knowledge на Stack Overflow Blog
Когда журналистка взяла и закодила приложение на чистом вайбе
Если бы я попросила вас угадать, кто в моем офисе мог бы создать приложение, в первых пяти вариантах вы не назвали бы мою профессию. И это логично.
Никогда я не указывала программирование в своем резюме как основное умение. Всё, что я знаю о коде, — это случайные обрывки знаний, собранные на работе. К тому же я живу в Bay Area (крупная агломерация в Северной Калифорнии, сформировавшаяся вокруг залива Сан-Франциско и включающая такие города, как Сан-Франциско, Сан-Хосе и Окленд, а также знаменитую Кремниевую долину), где каждый разговор рано или поздно скатывается на AI и технологии — не можешь избежать просто так.
Но жизнь полна сюрпризов. И вот однажды я создала приложение. С одной оговоркой: я не кодила его сама. Приложение полностью родилось из "вайба" (vibes) — так уже называют создание с помощью AI-инструментов вроде Bolt (конструктор сайтов на базе искусственного интеллекта, позволяющий создавать веб-сайты и мобильные приложения за считанные минуты)
Что такое Vibe Coding?
Концепция "vibe coding" появилась только в начале 2025 года, но уже успела стать одной из самых обсуждаемых применений больших языковых моделей. Она вызывает жаркие дебаты об эффективности и кучу страхов среди junior-разработчиков о том, как это изменит их будущее. Даже опытные программисты испытывают экзистенциальный страх замены.
Обещание, что vibe coding дает любому, даже без технического бэкграунда, возможность создать приложение, звучит как-то слишком хорошо. Из своего опыта скажу: это как нажать на кнопку на микроволновке, и еда сама разогреется. Слишком легко. Как только я отдала результат человеку с реальным техническим опытом, щели в моем творении начали вылезать со всех сторон.
В умелых руках это мощный инструмент. В моих — как фильтр AI в TikTok, который делает тебя похожей на персонаж из какого-нибудь аниме. Забавно выложить, но по сути — ничего стоящего.
Как я создавала приложение про плохие туалеты
Участвовала я в хакатоне Bolt, совместно с Reddit. Задача была простой: создать что-нибудь смешное, иррелевантное и вообще бесполезное. Я от таких идей не отказываюсь.
"Вроде Яндекс.Карт, но только про плохие туалеты в мире," — сказала я маме. "А кем ты работаешь, в конце концов?" — спросила она в ответ.
Процесс обещал быть легким. Для кого-то, кто не знает, где на компьютере лежит терминал, это оказалось не очень. Организаторы обещали, что за минуту я запущу разработку. Они предоставили ресурсы, включая гайд Reddit Developer Quickstart. Я потратила кучу времени на этот гайд, ибо не понимала ни черта.
Официально приношу извинения службе поддержки Stack Overflow за попытку установить Node.js на рабочий ноутбук, хотя мне это было совершенно не нужно.
Когда я поняла, что Bolt сам всё вытянет, стало намного легче. И это действительно так — Bolt может создать простое приложение от А до Я чуть ли не автоматически. Нужно либо знать хотя бы основы кода, либо иметь четкие инструкции. Я попала во вторую категорию.
Интерфейс Bolt красивый и интуитивный, с live-preview приложения сбоку. Ты можешь смотреть на код и редактировать строки вручную. Я же использовала простой текстовый ввод: "Создай приложение для Reddit — как Яндекс.Карты с рейтингами, но только для ужасных общественных туалетов"
AI сразу же принялся работать. Примерно за 10 минут основа была готова. Приложение запустилось в моём тестовом сабреддите, с глупым интерфейсом (там даже была эмодзи унитаза). Была форма для отзывов, рейтинг-скейл, страница с отзывами.
Все работало в браузере. Почти.
На самом деле — вообще не работало.
Сразу же начались ошибки. И в интерфейсе Bolt, и в самом приложении. Не мог загрузиться ни один отзыв. Красные сообщения об ошибках: "location services недоступны", "не получается загрузить". Хотя работы было проведено мало, я испытывала подавленность. Я сказала коллегам: "Приложение не работает."
И начался адский час — 45 минут troubleshooting (процесс систематического поиска и устранения неисправностей, неполадок). AI указывал мне, где искать ошибки. Я просто копировала текст ошибки в чат, и Bolt сам разбирался. Правда, когда AI объяснял, что исправил (что-то про API endpoints на root level), я вообще ничего не понимала. Весь смысл опыта был в том, что я этого не должна понимать.
Мой эпический fail с npm run dev
Я даже не знала, что команда npm run dev обновляет приложение в реальном времени. Я думала, что нужно каждый раз переписывать и переливать приложение, чтобы протестировать новую версию. Я представляла каждую версию как отдельный объект, а не развивающееся приложение. В итоге в моем тестовом сабреддите было 20 постов, прежде чем я получила рабочее приложение.
Но Bolt был невероятно полезным. Я была потеряна, как в лесу, а он вытягивал меня за правильное направление. Он даже помогал менять интерфейс — я переделывала дизайн как графический дизайнер, которым я и являюсь.
В конце концов, что-то получилось работающее. С кавычками вокруг слова "я". Bolt создал приложение, а я просто писала промпты и копировала ошибки. С каждой итерацией что-то новое начинало работать. Я добавила загрузку инфы, просмотр отзывов, красивые бейджи.
Но даже когда приложение работало — оно было хорошим?
Отправляю своё творение на суд
Я выполнила задачу хакатона: создала что-то смешное, иррелевантное и совершенно бесполезное. Коллеги с удовольствием начали заполнять его худшими туалетами.
Потом я встретилась с Ryan Donovan (известный блогер Stack Overflow) для ревью. И тут-то вскрылось, что это творение — полная катастрофа.
Во-первых, он удивился, сколько технологий там работает для такого простого приложения. "Ты знаешь, что такое JSON или Redis?" спросил он. "Нет," ответила я честно.
Райану даже не нужно было смотреть на код. Через инспектор браузера он сразу нашел проблемы. Главная: у приложения нет никаких защит. Любой может получить доступ ко всем данным. Это довольно серьёзно, но к этому вернемся позже.
Райан предложил выложить код на GitHub и получить фидбэк от сообщества. Но когда я поняла, как всё плохо, я испугалась публичного позора. Не то, чтобы я боялась критики (нечего тут критиковать), а просто ощущение дрожащего страха, как перед разбором домашки учителем.
К счастью, в Bay Area почти все мои друзья — разработчики. Я попросила их посмотреть. Трусливый ход, конечно, потому что они знали про vibe-coding и были деликатны.
Фидбэк от друзей-программистов
Главное: код — полная свалка, невозможно разобрать.
Я специально давала мало контекста, надеясь, что файл README.md, который создал Bolt, всё объяснит. Но структура вышла паршивая — я же никогда не работала с GitHub.
"У тебя хороший README, но почему-то все спрятано в папке ./project. Почему бы не выложить на верхний уровень?" — написал один мой знакомый из Palo Alto.
Другой: "Весь стайлинг инлайнирован в tsx-компоненты. Это делает всё запутанным и нечитаемым."
Третья добавила: "There are no unit tests." (Нет юнит-тестов.)
Я поняла, что она не может даже проверить, имеют ли смысл мои компоненты.
Ненарушенное обещание
Вот в чём главный разрыв: между vibe-coding и реальной разработкой. Моё приложение было экспериментом, так что плохой код не страшен. Но это точно не должно рекламироваться, как инструмент для поднятия производительности, мост для нетехнических людей и (со временем) замена junior-разработчикам.
Да, я могу взять фидбэк от друзей и влепить их советы в промпт. Один из них порекомендовал добавить описательные имена классов. Bolt сделал это за секунду — и понимал даже, почему это нужно, хотя я и не знала.
Но что если у меня нет друзей-разработчиков? Что если это не хобби-проект, а реальная работа или идея, которую хочу монетизировать?
Мой код превратился бы в проблему. Да, приложение работает, но действительно ли оно хорошее? На реальном проекте после меня пришлось бы приходить разработчику и переписывать всё, чтобы будущие коллеги не потерялись в хаосе. Это называется "productivity tax" — главная боль программистов от AI-инструментов, которые выдают код, почти (но не совсем) правильный. По опросам Stack Overflow, 66% разработчиков сталкиваются с этой проблемой.
Безопасность — главный красный флаг
Но есть проблема ещё серьёзнее: безопасность. Помните, что Райан сказал про отсутствие защиты? На моём глупом приложении про туалеты — неважно, никаких ценных данных там нет.
Но вот представьте: инструменты обещают результаты без опыта разработки. Будут люди без опыта, которые создадут свои пет-проекты на Bolt. И многие из них будут безобидными и будут работать хотя бы с фронтендом. Потом — запросят почтовый индекс, email, дату рождения, пароль. Вы, наверное, уже догадываетесь, к чему я клоню?
Конечно, на продакшене обычно приходит разработчик и проверяет перед запуском. Но что с любительскими проектами? Я легко представляю, как кто-то создаст что-то для близких с персональными данными — и это попадет в руки мошенников
Или всё не так плохо?
Был ли мой результат достаточно хорош для моих целей? Да. Могла ли я с помощью друзей-разработчиков исправить безопасность и организацию без единой команды терминала? Да, точно.
Но для технологии, которая обещает сделать junior-разработчиков ненужными, мне потребовалась помощь моих друзей — все они... junior-разработчики.
Другая история: когда vibe-coding работает
Мой лучший друг — доктор физики Стэнфорда. Хотел остаться в науке, но в академии зарплаты нищие, а мест нет. Он решил кардинально переквалифицироваться и учиться кодить с нуля за пять лет.
Он сказал, что LLM'ы дали ему буст в обучении в 10 раз. Стал использовать CoPilot, Gemini, ChatGPT как личного репетитора — когда не мог найти баг, AI объяснял. И потом, когда встречалась похожая проблема, он уже знал решение.
Вот это — реальная ситуация, когда vibe-coding может помочь: учиться кодить без соответствующего образования. Мой друг... не скажешь, что он не умен для программирования. Просто у него не было опыта. И возвращаться в институт на ещё пять лет после Стэнфорда было немыслимо. Vibe-coding дал ему поддержку и знания, чтобы учиться самому.
Итог: всё зависит от того, как ты это используешь
Как и в любом инструменте — всё зависит от использования.
Я хочу, чтобы мой опыт вайб-коддинга стал первым шагом в обучении кодированию. Поэтому я выложила свой проект на GitHub и прошу фидбэк, критику и советы.
Помогите мне перестать быть худшим программистом в мире.
Главные выводы из статьи
Для QA-специалистов и тестировщиков
Vibe-coding создает новый вид приложений, которые нужно ОБЯЗАТЕЛЬНО тестировать:
- Код не следует каким-либо лучшим практикам — нужны более строгие тесты
- Безопасность не встроена — тестирование безопасности становится нужным с самого начала
- НЕТ ДОКУМЕНТАЦИИ — нужно самому разбираться в логике через UI и инспектор
Для начинающих разработчиков
Это не замена классическому обучению, но отличная поддержка:
- Учитесь кодить с AI как с репетитором
- Создавайте свои проекты, а потом просите разработчиков на ревью
- Понимайте, почему код так написан — не просто копируйте