Я люблю вайб-кодинг

Благодаря вайб-кодингу я снова хочу программировать. Генеративные нейросети — это тот инструмент, который должен освоить каждый программист, потому что ему понравится.

За картинку спасибо Дмитрию и ChatGPT.
За картинку спасибо Дмитрию и ChatGPT.

Давайте познакомимся — я технический директор IT-компании vverh.digital со стажем работы более 8 лет. За это время я не только руководил, но и много сам делал руками. Поэтому хотелось бы, чтобы в данной статье меня воспринимали не как "эффективного" менеджера, а как обычного программиста, который обожает свою работу.

Выгорание

Мой стаж 8 лет… это только в рамках прямой разработки. Общий мой стаж в IT в этом году стал 10 лет. Я — за*бался. Как программист, мне надоело делать одни и те же шаблонные "конструкции" из проекта в проект: чистая архитектура, MVC, MVVM — надоело. Мне нравится писать бизнес-логику, ведь она чаще всего уникальна (да и просто это интересно). Но бизнес-логика — это далеко не самая важная часть в проекте, особенно если ты в нём главный технический специалист. Архитектура, документация, регламенты, код "обслуживающий" архитектуру — всё это требует внимания, иногда чрезмерного.

Когда мы работаем по чистой архитектуре — мы пишем много очень похожего кода, который тупо надоедает писать из раза в раз. Аналогично с паттернами попроще — MVC. Там мы каждый раз делаем контроллеры, модели, может быть ещё какие-нибудь слои. Это утомляет.

Как руководителю, мне не нравится, что у моего сотрудника на создание типового модуля, который состоит из контроллера, 4 типовых (ну может, больше) юзкейсов (Use Case) и двух простых экранов — уходит минимум полдня работы. А ведь время — деньги. Сделай он быстрее — я получу “грязные бумажки” быстрее, а он получит премию. Но он не может, просто физически не может быстрее.

Типовой модуль в нашей CRM состоит из пары юзкейсов (от 4) и двух страниц: таблица и просмотр/создание сущности. В целом они одинаковые, просто разные данные туда–сюда летают по похожему принципу.
Типовой модуль в нашей CRM состоит из пары юзкейсов (от 4) и двух страниц: таблица и просмотр/создание сущности. В целом они одинаковые, просто разные данные туда–сюда летают по похожему принципу.

Вот эти две проблемы постоянно вгоняли меня в уныние. Я обожаю свою работу, но вот эта "рутина" однотипная раздражает.

Генеративные нейросети

Я давно слежу за так называемым "ИИ", первые версии ChatGPT вызывали смех, но я честно пытался извлечь из этого хоть какую-то выгоду. Да, простые типовые скрипты он писал круто, но сложные модули делать с ним — настоящая боль. Основная проблема — они не понимали контекст.

Агенты и типовые модули

И вот настал момент, когда я стал использовать агентов. C выходом Claude Sonnet 3.5 я перестал писать 50% кода самостоятельно. А с выходом Claude Sonnet 4.6 – 90% кода.

В данный момент я использую Claude Opus 4.6 и подписку Copilot Pro+ в VS Code. Для тех, кто не знает, это то же самое, что Cursor. Я бы даже сказал, это почти одно и то же.

Сейчас я могу написать техническое задание в 1500–2000 строк текста, причём дублируя некоторую информацию из папочки "prompts", которая у меня есть в проекте, и электронный брат делает всё как мне надо.

Я люблю вайб-кодинг

Пока он 10–20 минут делает мою работу, которую я бы делал часа 4, я могу заняться другими делами. Больше времени уделить качеству кода, больше времени потратить на эстимацию других более сложных задач.

Кто-то скажет: код плохой, не безопасный… да блин, вы уверены? А прокладка (вы) между нейронкой и компьютером зачем нужна? Верно, чтобы всё качественно проверить и проконтролировать.

Лично я к каждому своему промпту прикрепляю дополнительный базовый шаблон, который корректирую в зависимости от задачи. Даю нейросети кучу файлов, например файл, где описана простым языком вся архитектура проекта и все взаимосвязи.

Тот самый файлик.
Тот самый файлик.

А ещё часто я "кормлю" модель очень качественными примерами, которые я руками собирал. Потом, естественно, я это всё проверяю, вношу правки и получаю просто офигенный результат за короткое время.

Единственная проблема — Context Window агента заполняется на 80%–85% из-за огромного количества кода в проекте. И чем язык сложнее, чем больше всего на нём чего-то абстрактного описать надо — тем хуже работает. Но тут всё просто. Во-первых, каждый новый промпт — это новый чат. Во-вторых, если у нейросети что-то не получается, то делай как с человеком: дроби задачи.

Да, никогда с первого раза не получалось то, что хочется на 100%: где-то приходится немного править руками, писать свой код… но это 10% от общего кода, который я пишу с удовольствием. Как будто снова за стажёром мусор убираю и показываю, как надо. Поэтому раньше на типовой модуль уходило 4 часа (в лучшем случае), теперь 2 часа стабильно, иногда даже меньше. По моим личным метрикам +100% к продуктивности. И больше я пишу обычного текста, а не кода.

А ещё сверху закладываем адекватные бизнес-процессы в компании, качественную аналитику, код-ревью и тестирование — получается ровно то же самое, что делал человек. Но быстрее.

Но ведь это не совсем вайб-кодинг…

В целом да, это GPT-First подход в программировании. И это название придумал не я. Для коммерческих проектов — это идеальный подход, где знания программиста входят в симбиоз с нейросетью.

Сам вайб-кодинг в чистом виде тоже хорош, но я не рискую использовать его в рабочих проектах. Нет, проблема не в надёжности — я слежу за процессом, мои знания вкладываются в разработку системы. Проблема в скорости разработки. Да, да, в скорости!

Чистый вайб-кодинг… это как кубик в D&D, иногда выпадает критическая неудача. Порой нейросеть начинает отказываться делать то, что ты хочешь — хотя это очевидно простая вещь. Чаще заметно во фронтенде, где тебе надо 1 в 1 как в дизайне, а не получилось. Тут проще самому зайти и руками поправить то, что нужно, пока условный "чистый" вайб-кодер будет жечь токены, нервы и зависнет на какой-то очевидной тупой фигне.

Агенты и сложные проекты

А как же сложные проекты? Огромные мобильные приложения или ERP-кабинеты на пару сотен тысяч строк кода?

Если касаться кодогенерации каких-то изолированных модулей, то всё круто. Ведь это всё та же работа с "типовыми" решениями. Если касаться доработки, рефакторинга сложной конструкции или даже внедрения новых функций… то всё зависит от модели и окна контекста.

Чем окно контекста больше — тем больше информации наш электронный друг переваривает. Чем больше переваривает (и понимает), тем меньше нейрослопа генерирует.

Copilot с Claude Opus 4.6 имеет окно контекста 192к токенов… и при грамотной разбивке задачи получается делать те же 90% работы с помощью него в проектах с 900 тысячами строк кодовой базы (почти миллион). Остальные 10% — это экономия моего времени и токенов, а также редкие моменты затупов нейронки, которые я считаю проще сделать самостоятельно.

Главное, увидьте фразу "при грамотной разбивке задачи". Это самая важная часть.

Да, вы правильно поняли, это даже можно исключительно вайб-кодить, просто надо много в голове держать:

  • Разбивать задачу на мелкие подзадачи, внимательно следить за Context Window;
  • Ограничивать контекст модели, дабы она не "жрала" больше, чем нужно. То есть загонять её в "гипотетические" рамки;
  • Постоянно проверять ход её работы (превратиться в менеджера проекта 😂);
  • Быть готовым заплатить… ибо это будет жрать много денег и вы вылетите за все лимиты и придется платить сверху (даже за те, которые скрываются за “стеной” в 40$+ в месяц).

Вот поэтому мне и не нравится чистый вайб-кодинг на больших проектах: сжигаешь токены, чистишь галлюцинации, следовательно, нервничаешь. А вот сгенерировать 90% основного кода (или даже жирную базу в 50%) с помощью нейросети и доработать — это я за. Это круто!

Как итог

Честно, не хотел писать эту статью, ибо ещё одно мнение в интернете о вайб-кодинге, наверное, не нужно. Просто хочется рассказать людям, кто думает, что это плохой инструмент — проблема не в инструменте… а в руках. Это наше будущее, и надо просто смириться и начать с ним дружить. Самое главной в этой цепочке – вы. Вы и ваша ответственность.

P.S: если через 2–3 года я вообще перестану сам писать код, а буду только в круто настроенный мной OpenClaw загружать техническое задание и получать через пару часов проект — я буду счастлив.

P.P.S: так-то и сейчас уже можно начать пытаться это делать, но это стоит нереально огромных денег (да и времени), как обслуживать автомобиль в начале XX века.

9
1 комментарий