Как я начал бояться вайб-кодинга, или почему мы доверяем ИИ больше, чем коллегам

от автора

Ещё год назад я смеялся над мемами про Copilot, который «пишет весь код за тебя». Теперь — я уже не смеюсь. Потому что вижу, как всё чаще код влетает в main почти без участия человека. Его не пишут — его принимают. Почти как оракульское послание.

Это не всегда плохо. Но иногда — страшно.

Началось с удобства

Я не анти-ИИ и не неолуддит — я сам пользуюсь им в работе. Более того — я первый, кто радовался, когда Copilot или Claude помогали дописать скучные if-else, док-блоки и избавляли от гуглинга array_unique третий раз за неделю. Это круто. Это ускоряет. Это экономит силы. Но со временем, что-то начало меняться.

Я поймал себя на мысли, что больше не вникаю, почему код работает. Он просто работает. Или, точнее — кажется, что работает.

А потом — начало происходить вот это:

  • Пулл-реквест на 300 строк сгенеренного кода от моего программиста в команде. Комментариев — ноль или слишком много. Первый код-ревьювер пишет: «выглядит нормально», второй код-ревьювер не пишет вообще ничего. Я пытаюсь разобраться в коде, который выглядит как код супер-сеньора с 25-ти летним стажем. Первое, что напрягает — его запулил джуниор.

  • Код, который вроде бы делает что нужно, но через пару дней становится чёрным ящиком — даже для того, кто его «написал».

  • Странные баги, которые сложно объяснить, потому что ты сам не до конца понимаешь, как получилось именно так.

Вайб-кодинг в действии

Термин «вайб-кодинг» я услышал от своих же коллег в команде. Сначала посмеялся. А потом понял: это и есть то, что происходит.

Когда ты:

  • формулируешь проблему в промпте, не особенно вдумываясь

  • принимаешь первый же вариант, потому что он вроде бы логичный

  • не читаешь код внимательно — тебе просто «нравится вайб», ведь он решил проблему

Вайб-кодинг в действии (сгенерировано ChatGPT-4o)

Вайб-кодинг в действии (сгенерировано ChatGPT-4o)

Код «по вайбу». Не по логике, не по архитектуре (не по требованиям, Карл!). А по вайбу.

Ревью по инерции

Раньше код-ревью было чем-то вроде священного обряда. Сейчас — всё чаще «approve» прилетает в течение минуты. Человек даже не глянул — но «Claude ведь сгенерил, он не может ошибаться, да? Ну, и баг вроде пофиксили.»

Мы перестаём доверять людям — и начинаем безоговорочно доверять ИИ. Почему? Потому что машина «не устает». Не выносит мозг. Не спорит. Она даже добавляет свои комментарии в пулл-реквест на GitHub (пока только в качестве рекомендации). Но это иллюзия.

ИИ — не понимает контекста. Он не знает, что за API ты вызвал. Он не знает бизнес-логику. Он предсказывает (!), а не проектирует.

Представим плохой сценарий

Вот просто гипотетика. Ты работаешь в компании, которая разрабатывает медицинское ПО. Или ПО для дронов. Или для спутников. Ты внедряешь кусок ИИ-кода, который обрабатывает какие-то критичные сигналы. Всё работает. На тестах — норм. В проде — норм. Но через два месяца происходит сбой. Из-за того, что один параметр оказался null в неподходящий момент. А проверка на него была… ну, слишком не «вайбовая».

Цена такой ошибки — не 500 на сайте. Цена — жизнь.

Пример для подражания: Boston Dynamics

Я не знаю наверняка, но читал статью про Boston Dynamics о том, как у них организована работа — всё очень серьёзно. Они тоже используют ИИ — не где-нибудь, а в управлении роботами в реальном времени. Причём не просто игрушками, а этими жуткими штуками, которые бегают, прыгают и потенциально могут работать в армии, на складах или при спасательных операциях.

Но главное — у них другой подход.

Не «погнали, закинем это в прод», а каждая строка через симулятор, каждое действие проверяется человеком. Никакого «ну вроде норм, Copilot нагенерил». Там по-другому: сначала убедись, потом запускай.

Теперь просто представьте: такой софт пишется «по вайбу». Одно лишнее действие, одна неотловленная генерация — и робот, например, падает на кого-то. Или сносит полку на складе. Или влетает не туда, куда должен.

ИИ — это помощник. Но если ты делаешь что-то, где ошибка может стать проблемой в реальном мире — никакой «вайб» не спасёт. Только проверка. Только хардкор.

Надо что-то менять

Я не предлагаю отказаться от ИИ. Но давайте хотя бы обозначим границы. Вот мои мысли, как с этим жить безопаснее:

  • Проверяй каждую строку ИИ-кода как чужую.
    Потому что она действительно чужая.

  • Не доверяй «вайбу». Доверяй логике, структуре, смыслу.

  • Пиши комментарии к сгенерированному коду. Если ты не можешь его объяснить словами — ты не понял, что он делает.

  • Вводи маркировку (это моя фикс-идея): «Этот код был частично сгенерирован ИИ». Это не стыдно. Это осознанно.

  • Ревью — по-честному. Если ты тимлид или просто ревьюер — не скидывайся с ответственности. Посмотри, подумай, задай вопросы. Это твоя работа.

Финал (пока ещё весёлый)

ИИ стал частью нашей работы. Он останется с нами. В своих пет-проектах я его использую с первой строчки. Но если мы не пересмотрим свою роль — мы из инженеров станем операторами кнопки «принять». А это уже не профессия. Это ответственность без понимания.

Может быть я стал слишком стар и ворчлив, но я бы не хотел жить в мире, где ПО, написанное «на вайбе», управляет кардиостимулятором моей мамы.

«В нас пропал дух авантюризма! Мы перестали лазить в окна к любимым женщинам; самостоятельно кодить, мы перестали делать большие и хорошие глупости…»

И если ты тоже, то давай сделаем шаг назад. Посмотрим на код. И вспомним, что думать — это всё ещё часть нашей работы (во всяком случае пока).

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

На сколько процентов Вы пользуетесь вайб-кодингом

46.67% не пользуюсь вообще28
18.33% менее 5-10%11
11.67% до 25%7
15% почти 50%9
8.33% почти 80-90%5

Проголосовали 60 пользователей. Воздержались 5 пользователей.

ссылка на оригинал статьи https://habr.com/ru/articles/900150/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *