Фирменный знак SuperMark'а Блог
Владимир Никишин

Vibe Coding: у нас с Claude.ai на двоих IQ под миллион

Vibe Coding: у нас с Claude.ai на двоих IQ под миллион

Мне кажется, что блоги, контент-маркетинг и пр. диджитал первых двух десятилетий третьего тысячелетия растеряли почти весь смысл. Трафик не привлечешь, экспертизу не выдашь. Единственное, что эти штуки ещё могут сделать, так это быть признаком жизни для «малотиражек» фрилансеров и агентств. Поэтому стараться не буду, попрошу лучше Perplexity подготовить deep research по теме, которая меня сейчас интересует, — vibe coding.

Vibe Coding представляет собой инновационный подход к разработке программного обеспечения, основанный на использовании искусственного интеллекта в качестве партнера в процессе создания кода. Ключевыми аспектами успешного применения Vibe Coding являются правильный выбор AI-модели, эффективное планирование проектов, грамотная интеграция с инструментами разработки и понимание особенностей взаимодействия с искусственным интеллектом в процессе создания программных решений.

Выбор оптимальной AI-модели

При выборе модели для Vibe Coding необходимо учитывать несколько критически важных факторов.

  • Размер контекстного окна определяет объем текста, который модель может “удерживать в памяти” при генерации ответа, что позволяет понимать сложные кодовые базы, генерировать связанный код для нескольких файлов и сохранять последовательность в длительных сессиях разработки.
  • Качество генерируемого кода включает синтаксическую и семантическую корректность, следование лучшим практикам, оптимизацию, а также читаемость и поддерживаемость.
  • Понимание специфических языков и фреймворков особенно важно, поскольку различные модели демонстрируют разный уровень компетенции в конкретных технологиях программирования.
  • Скорость и латентность существенно влияют на плавность рабочего процесса и общий пользовательский опыт.
  • Также необходимо учитывать стоимость и доступность моделей, а также их мультимодальные возможности, которые позволяют работать не только с текстом, но и с изображениями (например, генерировать код на основе скриншотов или диаграмм).

Выбор конкретной модели должен основываться на специфике проекта и потребностях разработчика. Для начинающих в Vibe Coding рекомендуется выбирать модели, обеспечивающие баланс между качеством кода и удобством использования, такие как GPT-4o через Claude 3 Sonnet, ChatGPT Plus или Gemini Pro (доступен бесплатно).

Для профессиональной разработки оптимальным выбором будут GPT-4o через API, Claude 3 Opus (идеален для проектов с большой кодовой базой) или DeepSeek Coder как более доступная альтернатива.

В проектах с высокими требованиями к конфиденциальности следует обратить внимание на Llama 3 70B, CodeLlama 34B для локального запуска на мощном оборудовании или Mixtral 8x7B для менее мощного оборудования.

В частности

Gemini (Google) предлагает отличное понимание технической документации и API, хорошую интеграцию с экосистемой Google и сильные мультимодальные возможности. Однако модель имеет меньшее контекстное окно по сравнению с некоторыми конкурентами и может уступать в сложных задачах программирования.

Llama 3 (Meta) представляет собой мощную открытую модель с возможностью локального запуска без передачи данных третьим сторонам, открытым исходным кодом и хорошим соотношением производительности и ресурсоемкости1. Среди недостатков - уступающее проприетарным моделям качество кода и меньшее контекстное окно1.

От себя

Мой топ-3: Claude, Grok и ChatGPT.

Планирование и подготовка к разработке

Эффективное планирование является критически важным элементом успешного Vibe Coding, позволяющим избежать многих проблем на последующих этапах разработки.

Vibe PMing: планирование с помощью AI

Одной из лучших практик является так называемый “Vibe PMing” - подход к планированию проекта с помощью AI. При старте нового проекта рекомендуется попросить AI создать readme-файл, который будет включать требования, технический стек и основные этапы проекта (до 5 milestones).

Этот подход эффективен тем, что AI берет на себя работу по составлению спецификации, а разработчик лишь вносит корректировки и предоставляет обратную связь. Например, можно попросить AI написать readme для симулятора самолета с пятью этапами разработки, где первый этап будет просто отображение 3D-модели самолета на экране.

Интересно отметить, что по опыту некоторых пользователей, Grok может быть более эффективен для планирования, чем Claude 3 Sonnet. Поэтому может быть полезно составить readme с помощью Grok, а затем скопировать его в Cursor или другую среду разработки.

Поддержание простоты технического стека

Одно из важнейших правил Vibe Coding - поддержание максимально простого технического стека. Чем проще технический стек, тем меньше вероятность того, что AI нарушит работу приложения.

Избыточно сложные технические решения могут создавать трудности для AI при генерации кода, что приведет к увеличению количества ошибок и проблем. Простота стека обеспечивает более предсказуемые результаты и облегчает процесс устранения возможных неполадок.

Интеграция с инструментами разработки

Выбор инструментов разработки и их интеграция с AI-моделями является важным фактором успешного Vibe Coding.

Популярные инструменты для Vibe Coding

GitHub Copilot использует модели OpenAI, оптимизированные для генерации кода, что обеспечивает высокое качество предложений, но имеет ограниченное контекстное окно (VS Code с Copilot’ом — стал моим основным инструментом кодирования — Вл.Н.).

Cursor поддерживает несколько моделей, включая GPT-4 и GPT-3.5 через интеграцию с OpenAI, Claude через интеграцию с Anthropic, а также предоставляет возможность подключения пользовательских моделей через API.

WindSurf предлагает интеграцию с GPT-4 и GPT-3.5, Claude, а также с локальными моделями через API.

JetBrains AI Assistant поддерживает GPT-4 через интеграцию с OpenAI, собственные модели JetBrains и предоставляет возможность подключения пользовательских моделей.

Для пользователей, предпочитающих локальные решения, существуют такие инструменты как Ollama и LM Studio, которые позволяют запускать различные модели локально, включая Llama 3, CodeLlama, Mixtral, Mistral, DeepSeek Coder и другие открытые модели.

Выбор инструмента в зависимости от проекта и модели

При выборе инструмента для Vibe Coding необходимо учитывать особенности проекта, предпочитаемую модель AI и требования к конфиденциальности:

  • Для проектов, требующих максимального качества генерации кода без особых требований к конфиденциальности, оптимальным выбором будут инструменты с поддержкой моделей OpenAI или Claude.
  • Для проектов с высокими требованиями к конфиденциальности рекомендуется использовать локальные решения, позволяющие запускать модели без передачи данных внешним сервисам.
  • Для образовательных проектов и быстрого прототипирования можно выбирать инструменты с поддержкой более доступных моделей, таких как Gemini Pro или Claude 3 Haiku1.

Практические рекомендации по использованию Vibe Coding

Работа с контекстом и инструкциями для AI

Качество генерируемого кода напрямую зависит от качества предоставляемого контекста и инструкций. Рекомендуется:

  • Детально описывать требуемую функциональность и ожидаемое поведение кода.
  • Предоставлять примеры существующего кода проекта для сохранения стилистической последовательности.
  • Разбивать сложные задачи на более простые подзадачи, что позволяет AI лучше понимать контекст.
  • Указывать предпочитаемые библиотеки, фреймворки и паттерны проектирования.

Проверка и тестирование сгенерированного кода

Важно помнить, что Vibe Coding является инструментом, дополняющим навыки разработчика, а не заменяющим их. Критическое мышление, проверка и тестирование сгенерированного кода остаются важными аспектами процесса разработки.

Рекомендуется:

  • Всегда проверять сгенерированный код на синтаксические и логические ошибки.
  • Тестировать функциональность кода на различных сценариях использования.
  • Анализировать производительность и оптимизацию сгенерированного кода.
  • Оценивать соответствие кода лучшим практикам и стандартам проекта.

Заключение

Vibe Coding представляет собой мощный подход к разработке программного обеспечения, позволяющий существенно повысить эффективность и скорость создания кода. Для достижения максимальных результатов важно следить за новыми разработками и регулярно оценивать, соответствует ли текущий выбор модели потребностям проекта. Экспериментирование с разными моделями и комбинирование их для разных задач может привести к оптимальному рабочему процессу Vibe Coding.

Независимо от выбранной модели и инструментов, критическое мышление, проверка и тестирование сгенерированного кода остаются важнейшими аспектами процесса разработки, обеспечивающими высокое качество конечного продукта.

От себя

Всегда нужно изучать документацию технологий, используемых на текущем этапе проекта.

  • Разрабатываете файловый менеджер на Tauri — почитайте статью о плагине и API fs.
  • Переделываете скрипты, написанные на jQuery и Bootstrap — попросите ChatGPT подобрать темы, а затем по одной объяснить их простыми словами: основы работы с DOM, событиями, AJAX и CSS.

Досконально изучать не нужно — всё равно не получится. Но хотя бы, чтобы в общих чертах понимать проблематику. Обязательно ведите конспекты и собирайте личную базу знаний. Я лично сохраняю конспекты в формате markdown в папку notes в домашней директории macOS. Структурирую с помощью хештегов и вложенных папок. Редактирую и связываю файлы ссылками в редакторе Obsidian.

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

Комментарии