Как использовать Vibe Coding: практические советы от партнера Y Combinator.
Том, партнер венчурного фонда Y Combinator, поделился своим опытом использования vibe coding — подхода, при котором разработчики используют ИИ-ассистенты для создания кода на основе естественного языка. За последний месяц он протестировал этот метод на нескольких небольших проектах и пришёл к выводу, что vibe coding работает не только эффективно, но и позволяет улучшать результаты со временем при правильном подходе.
Сравнение с prompt engineering
По словам Тома, vibe coding напоминает появление prompt engineering пару лет назад — когда пользователи активно делились новыми техниками в соцсетях, а лучшие практики быстро распространялись. Некоторые могут сказать, что использование профессиональных методов программирования уже нельзя назвать "чистым" vibe coding'ом, но, как подчеркивает Том, цель — получить максимально качественный результат, а не соблюдать формальные рамки.
Советы по работе с ИИ-инструментами.
1. Используйте несколько инструментов одновременно
Один из ключевых советов — работать сразу с двумя ИИ-редакторами над одной задачей. Например, Cursor работает быстрее и лучше подходит для фронтенда или full-stack задач, тогда как Windsurf тратит больше времени на обдумывание, что может быть полезно при сложных решениях. Пока один из них «думает», можно переключаться на другой и параллельно продвигаться в разных направлениях.
Если требуется изменить фронтенд, Том предлагает давать промты вроде: «измени это в стиле этого файла». Это позволяет получить разные варианты реализации и выбрать наиболее подходящий.
2. Воспринимайте ИИ как новый язык программирования
Вместо того чтобы писать код вручную, разработчик взаимодействует с ИИ через естественный язык. Для получения хороших результатов важно предоставлять много детального контекста: описывать логику, структуру проекта, требования и ожидаемое поведение.
3. Пишите тесты заранее
Тесты становятся основой для работы ИИ. Том предпочитает создавать их вручную, чтобы гарантировать точность. После этого ИИ может свободно генерировать решение, ориентируясь на эти тесты. Как только они проходят — задача выполнена. При этом не нужно микроменеджмент кода, достаточно проверить общую модульность и читаемость.
4. Не начинайте без плана
Перед началом работы стоит потратить время на проектирование архитектуры вместе с ИИ. Без чёткого плана код будет запутанным и нестабильным. Лучше составить подробный план в markdown-файле, который можно редактировать и к которому возвращаться по мере реализации задач.
5. Делайте проект по частям
Не стоит ожидать, что модель сможет написать весь продукт целиком за один раз. Работайте поэтапно: реализуйте пункт за пунктом, проверяйте каждую часть, запускайте тесты и делайте git commit. Так вы сможете откатиться, если что-то пойдёт не так.
6. Используйте систему контроля версий (Git)
Git становится незаменимым помощником при работе с ИИ. Том настоятельно рекомендует делать reset после нескольких неудачных попыток, чтобы избежать накопления плохого кода. Если нужное решение найдено после нескольких итераций — лучше сделать git reset и заново загрузить его в ИИ на чистом коде.
7. Обращайтесь к ИИ при возникновении багов
При появлении ошибок первым делом стоит скопировать сообщение об ошибке и отправить его в ИИ. Часто этого достаточно, чтобы система нашла и исправила проблему. Для сложных случаев можно попросить рассмотреть 3–4 возможные причины и выбрать наиболее вероятную.
Если ничего не помогает — стоит переключиться на другую модель: Claude Sonnet, GPT, Gemini и т.д. Иногда одна модель справляется лучше другой.
Другие полезные применения ИИ
Том отмечает, что ИИ полезен не только для написания кода. Например, он использовал Claude Sonnet 3.7 для настройки DNS-серверов и хостинга на Heroku, тем самым ускорив DevOps-процессы в 10 раз. Также ChatGPT помог создать favicon, а Claude автоматизировал изменение размера изображения под все необходимые форматы.
Кроме того, ИИ может стать отличным учителем, особенно для тех, кто мало знаком с программированием. Можно попросить его объяснить строчку за строчкой, как работает определённый участок кода.
Архитектурные решения
Для сложных функций Том рекомендует создавать отдельные мини-проекты с минимальной реализацией, чтобы ИИ мог использовать их как шаблон при внедрении в большой проект. Это позволяет избежать лишних ошибок и упрощает интеграцию.
Модульная архитектура также важна как для людей, так и для ИИ. Разделение на четкие сервисы с понятными API позволяет менять внутреннюю реализацию, сохраняя внешний интерфейс стабильным.
Выбор технологического стека
Разработчики, использующие старые и хорошо документированные фреймворки, такие как Ruby on Rails, получают преимущество: ИИ обучается на большем количестве данных, поэтому качество кода выше. У некоторых пользователей возникают трудности с более современными языками, такими как Rust и Elixir, из-за меньшего объема обучающих материалов.
Визуальный контекст и голосовое управление
Скриншоты также могут помочь в работе с ИИ, особенно при демонстрации дизайна или ошибок интерфейса. А для увеличения скорости работы Том использует голосовой ввод через Aqua — инструмент, который распознаёт речь и вводит текст в текущее приложение. Это позволяет ему работать в два раза быстрее, чем при обычной печати.
Рефакторинг и эксперименты
После того как код работает, а тесты проходят успешно, важно провести рефакторинг. Тесты помогут выявить ошибки, а ИИ может найти повторяющиеся части, которые можно улучшить. Маленькие и модульные файлы облегчают работу как людям, так и ИИ.
Том также призывает экспериментировать: стандарты быстро меняются, выходят новые модели. Каждую неделю появляется что-то новое, и важно тестировать разные ИИ-инструменты, чтобы понять, где какая модель работает лучше всего.
Заключение
Vibe coding продолжает эволюционировать, и хотя сегодня он ещё не идеален, он уже показывает огромный потенциал. По мнению Тома, ключ к успеху — это сочетание проверенных методик разработки и новых возможностей, предоставляемых ИИ.