Вайбкодинг — способ вести разработку через описание желаемого поведения и частые проверки с помощью ИИ. Ты формулируешь задачу обычным языком, инструмент предлагает план или изменения, ты запускаешь результат, замечаешь расхождение и уточняешь следующую задачу. Рабочая единица здесь не «идеальное приложение по одному промпту», а небольшой проверяемый шаг.
Это полезно для прототипа, учебного проекта и ограниченного изменения уже знакомого приложения. Способ не отменяет понимания результата: если система хранит личные данные, принимает деньги или выдаёт доступы, ответственность за требования, проверку и эксплуатацию остаётся у владельца проекта.
Один сквозной пример: список прочитанных книг
Исходная идея: «Хочу приложение для чтения». Это слишком широко. Из неё можно сделать библиотеку с аккаунтами, импортом, рекомендациями, заметками и синхронизацией, хотя сейчас нужна только одна проверка гипотезы: удобно ли отмечать книгу, к которой хочется вернуться.
Сузь задачу до одного цикла: ввести название, сохранить запись, отметить её прочитанной, увидеть результат после перезагрузки. Для первой локальной версии отложи аккаунты, синхронизацию, обложки, поиск и публикацию. Напиши критерии: пустое название отклоняется; после сохранения появляется строка; статус меняется; после обновления страницы данные остаются.
Первый запрос ИИ может быть таким:
Посмотри структуру проекта. Сначала перечисли файлы и предложи план для локального списка книг: название, статус «читаю/прочитано», добавление и переключение статуса. Пока не меняй код и не подключай аккаунты, облако или сторонние сервисы. Укажи, как будут храниться данные и какие проверки нужны.
Важен порядок: сначала получить план и увидеть, какие предположения делает инструмент. Если он предлагает базу данных и вход пользователей, хотя личная локальная заметка пока не нужна, поправь границу до начала реализации.
Цикл: запрос, diff, запуск, уточнение
После согласования плана поручай одну порцию изменений. Например: «Добавь форму создания книги. При пустом или состоящем из пробелов названии не добавляй запись; покажи сообщение рядом с полем. Не меняй хранение и экран списка».
Затем просмотри diff — список конкретных изменений. Проверь, что задача ограничилась формой, а ИИ не переписал соседние компоненты или зависимости. Репозиторий Git хранит файлы проекта и историю ревизий; эта история помогает видеть, что изменено между версиями и обсуждать отдельные изменения (GitHub о репозиториях). Это страховка для осмотра изменений, не гарантия их правильности.
Запусти проект способом, предусмотренным его документацией. Проверь критерии вручную: создать запись, ввести пробелы, переключить статус, перезагрузить страницу. Если что-то сломано, сообщи конкретные шаги и ожидаемый результат: «После нажатия “Прочитано” метка меняется, но после перезагрузки возвращается старое значение». Так инструменту проще найти границу проблемы, чем по сообщению «не работает».
Повторяй короткие шаги: изменил форму — проверил форму; изменил хранение — проверил сохранение; добавил фильтр — проверил пустую выдачу и совпадение. Когда задача затрагивает несколько частей, попроси перечислить затронутые слои и отдельные проверки. В проекте с Git можно сохранить рабочее состояние перед крупным изменением и сравнить итог с ним.
Что умеет и чего не обещает такой подход
ИИ может помочь разложить неопределённое пожелание на компоненты, написать первый вариант кода, объяснить сообщение об ошибке и предложить тестовые случаи. Но результат зависит от контекста проекта и точности требований. «Кнопка выглядит готовой» не показывает, сохраняет ли она данные; успешная локальная страница не подтверждает безопасное хранение, права доступа или корректный платеж.
Ошибку в расчёте можно не заметить по внешнему виду. Форма может отправить клиентский запрос, но не получить серверный ответ. Поэтому для каждой важной функции заранее назови проверяемое доказательство: строка действительно появилась в хранилище; доступ запрещён без прав; в sandbox провайдера пришёл подтверждённый тестовый результат. Для вопросов о приложении целиком смотри также руководство по веб-приложению с ИИ.
Когда остановиться
Первый цикл закончен, если исходная задача выполняется с нуля, ошибки и пустые состояния понятны, а ограничения записаны. Не добавляй новый экран только потому, что модель предложила его. Спроси: какую конкретную задачу он решает и как мы поймём, что помогает?
Вайбкодинг ускоряет переход между формулировкой и пробуемой реализацией. Он не превращает неопределённую идею в готовый продукт автоматически. Начни с маленького поведения, проверяй каждый шаг и расширяй проект только после того, как увидел результат.
