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

Ещё год назад я смеялся над мемами про 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 нагенерил”. Там по-другому: сначала убедись, потом запускай.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор: samako

Источник

Рейтинг@Mail.ru
Rambler's Top100