Блог AST-SoftPro
Вайб-кодинг: насколько полезным он стал для меня
Вайб-кодинг как новая веха программирования
Вайб-кодинг - это процесс, когда вы на естественном языке пишете, какую программу вы хотите получить. Среда разработки получает задание, начинает создавать, проверять и править создаваемый код программы. В результате такого многократно повторенного взаимодействия получается готовый программный продукт. И код, чаще всего, писать самому не надо.
На мой взгляд, вайб-кодинг - не менее важный прорыв в технологиях, чем сами большие языковые модели (LLM, large language model). Генерация текстов, картинок, видео - это здорово. Но когда создание софта становится творческой задачей, это открывает новые горизонты.
Я работаю с редактором Cursor с апреля 2025 года. До этого пробовал использовать онлайн-чат Qwen и локальные модели LLM через LM Studio. Могу сказать уверенно: это был прорыв по части моих возможностей. Причем именно редактор Cursor. Возможности чата Qwen были полезны и интересны. Но редактор Cursor позволил выйти на качественно новый уровень.
Какие технологии облегчали программирование
Но начну с истории, как я по жизни занимался программированием. Так мы дойдем до основной мысли этой статьи. Изучать программирование я начал с 7 класса, это был конец 1993 года. Мы учили Basic еще на старых советских машинах. Но через 1-2 года у нас в школе поставили IBM PC. И там уже стало намного удобнее писать программы с использованием Microsoft QBasic, QuickBasic. У этих систем появились более-менее удобные редакторы c возможностью вставки, копирования, переноса, отладки, были богатые библиотеки готовых решений по разным направлениям. Это повышало производительность по сравнению со строкой ввода на старых персональных компьютерах.
Потом появилась операционная оболочка, затем и операционная система Windows. В ней стал доступен Visual Basic с его визуальной системой разработки RAD - rapid application development. Это позволило не писать код кнопки, а брать готовый элемент и программировать действие по его нажатию. Это был еще один прорыв и повышение доступности программирования для людей. Похожий Borland Delphi надолго стал стандартом в области разработки программ для работы с базами данных, том числе благодаря RAD.
С учетом полученного за последний год опыта могу точно сказать: вайб-кодинг - это новый шаг в программировании. Он сильно влияет на будущее разработки программного обеспечения. Видел в одной статье мысли, что с появлением вайб-кодинга начнут на второй план уходить языки программирования. И я с этим согласен, поскольку ИИ сам станет выбирать со временем более удобные ему формы решения поставленных задач.
Инструменты для вайб-кодинга
Есть достаточное количество инструментов для вайб-кодинга:
- Редактор Cursor - десктоп-приложение для разных операционных систем.
- Редактор Visual Code c разными плагинами типа GigaCode.
- Cline + LLM локальная или облачная - десктоп-приложение для разных операционных систем.
- Replit.ai - онлайн сервис для вайб-кодинга.
- Сервис Google AI Studio и новая система Antigravity.
- Другие подобные решения, которые можно найти в Интернете.
Я пользуюсь редактором Cursor. Пробовал для ознакомления настроить связку Visual Code + Cline + LLM. Еще с помощью Cursor я сделал себе веб-чат с функцией "Кодер" к локальным моделям через LM Studio. Он позволяет генерировать основные файлы для будущего проекта. А их затем я доделываю уже в Cursor.
Опыт программирования для повышения эффективности вайб-кодинга
Я изучал и использовал языки разные программирования:
- Microsoft QBasic
- Microsoft QuickBasic
- Microsoft Visual Basic for DOS
- Microsoft Visual Basic for Windows
- Turbo Pascal
- Borland Pascal
- Borland Delphi 7
- Embarcadero Delphi 2005
- Microsoft C++ (совсем чуть-чуть)
- Sphinx C-- (да, такой тоже был, отдельная интересная тема)
- PHP 5/6/8
- Python 3.9 - 3.13
- SQL (MySQL, Access SQL, MS SQL Server, PostgreSQL)
- HTML/CSS/JavaScript
Эти знания помогают мне сейчас эффективно заниматься вайб-кодингом. Я знаю, что надо и можно просить у ИИ,искусственного интеллекта. Знаю, как правильно просить, как подсказывать ему для быстрого исправления ошибок. Могу подробно расписать из каких частей должно состоять будущее приложение, какие хочу задействовать технологии: язык программирования, библиотеки, базы данных.
Уверен, что эффективно вайб-кодить без технических знаний не получится. Простые проекты написать можно. Но с более-менее сложными, скорее всего, будут ошибки и проблемы. Отладка и исправление ошибок - самая сложная, самая утомительная и даже временами раздражающая часть вайб-кодинга. Ведь при таком программировании всегда останется часть, которую пользователь не до конца знает или понимает.
Иногда мне хочется сравнить процесс вайб-кодинга со сбором яблок с помощью плодосъемника на длинной ручке : вы получаете возможность с земли снимать яблоки высоко надо головой. Но при неловких движениях можно и яблоком в лоб получить. С одной стороны, вы получаете усилитель своих возможностей. А с другой, не до конца можете контролировать детали процесса.
Какие проблемы были у меня при вайб-кодинге
- Сам редактор Cursor является платным. Но это половина беды. За него надо платить картой Visa/MasterCard. Эта проблема решаема, но может вызвать определенные сложности.
- Правильно писать промты,задачи для ИИ, надо учиться. В некоторых случаях правильные формулировки могут сильно облегчить жизнь. Если еще не научился, стоит почитать дополнительную информацию, как правильно писать промты. В самих программных решениях тоже надо писать промты, правильно их формулировать. Без этого решения не будут эффективными.
- Чтобы редактор исправил ошибки в коде, надо ему передавать максимум информации из логов. Это описание ситуации, при которой возникла ошибка, в какой части проекта она, скорее всего, возникла. В противном случае процесс отладки может неприятно затянуться.
- Для более качественного кода надо подсказывать ИИ удачные идеи и способы решения. Опыт программирования и решения разных задач по проектированию софта мне очень помогает. Без такого опыта сложнее получить хороший результат.
- У всех моделей ИИ есть ограничение памяти, то есть контекста. Если контекста не хватает, модель делает суммаризацию .Это значит, что она уменьшает размер контекста за счет обобщения данных. А это занимает определенное время.
- Главные этапы при разработке надо фиксировать внутри проекта в отдельном плане. Это поможет модели ИИ при необходимости начинать с того места, на котором закончили.
- Наиболее важные правила надо сформулировать внутри редактора. Я сделал за правило делать резервные копии, сравнивать с ними после правок. Так резко уменьшилось количество случаев случайного удаления кода.
- Иногда правки ломают систему, но не понятно, что именно сломалось. По резервным копиям можно восстановить картину изменений и взять более правильный код, который почему-то поменялся.
- Использовать онлайн-чаты для вайб-кодинга тоже можно. Но это подходит лишь для отдельных частей или простых коротких решений. Постоянный перенос кода между редактором кода и чатом, поломка уже проверенных и работающих частей, в общем, удовольствие ниже среднего. Но для начала и так можно делать.
Технический долг
Возможна такая ситуация, что при помощи вайб-кодинга вы получаете решение, но как оно работает, вы не понимаете до конца. Чем меньше вы разобрались в созданном коде, тем больше остается пробелов в технических вопросах реализации. Один вариант, если вам просто лень писать много однотипного кода, другой вариант, если вы его не можете написать в принципе, поскольку не хватает знаний. Чем меньше вы погружаетесь в детали работы созданной программы, тем быстрее копится технический долг. Вы не сможете ответить на вопросы по нему, не сможете найти место возникновения и причину ошибки, не сможете доработать и улучшить. И технический долг будет расти, как снежный ком. В идеале вайб-кодинг нужно использовать вместо рутинных операций, которые вы можете сделать самостоятельно, но значительно дольше. Если использовать вайб-кодинг для того, чтобы создать программу, работу которой вы не понимаете, то в какой-то момент, технический долг не позволит вам продолжить работу.
У меня было несколько ситуаций, когда пользователи просили доработать код, созданный ИИ. Из очевидного, были дубли кода, но пользователь даже этого не смог понять. У другого пользователя во время вайб-кодинга при добавлении нового кода ломался старый, и в какой-то момент он сдался, обратился ко мне, как программисту. Третий заказчик не мог внести в код, созданный скорее всего ИИ, незначительные, на мой взгляд, модификации, которые смог бы сделать программист среднего уровня. Все это было результатом технического долга.
Резюме
Я не считаю чем-то зазорным вайб-кодинг. Это просто новый способ программирования. Это не волшебная палочка. Как любым другим инструментом им надо учиться пользоваться. Надо иметь общее представление о том, как будущее приложение должно работать, на каких технологиях его делать. Мне он позволил решить ряд задач, на которые не хватало времени и знаний ранее.
Любые дополнительные знания могут быть полезны для вайб-кодинга. Я часто расспрашиваю ИИ о разных технологиях, чтобы иметь о них представление и использовать при вайб-кодинге. Я в курсе большинства новых технологий, но тонкие аспекты их реализаций берет на себя ИИ. А я уже думаю над тем, чтобы сделать приложение полезным, безопасным и удобным для людей.
Фактически, за небольшую сумму в месяц я получил себе в распоряжение очень исполнительного "программиста", эрудированного, технически подкованного, но требующего очень четких инструкций и, самое главное, понимания сути процесса программирования.