Если вы хотя бы раз ревьюили код, то наверняка встречались с ситуацией, когда открываешь pull request и сразу понимаешь: автором был не человек, а ИИ. Вроде бы всё работает, тесты проходят, даже комментарии на месте. Но что-то здесь явно не так. Это что-то — то самое «вайб-программирование», когда нейросеть генерирует код, не следуя команде, а руководствуясь лишь статистическими закономерностями и своей абстрактной логикой.
Статья Алекса Кондова «I Know When You're Vibe Coding» как раз о таком явлении. Автор — опытный разработчик — подчёркивает, что проблема не в том, что код написан нейросетью, а в том, что программисты начинают слепо доверять инструментам, забывая о фундаментальных принципах разработки.
🔥 Проблема глубже, чем просто «код от нейросети»
ИИ уже давно стал полноценным членом команды разработки. Но, как и в случае с новым неопытным сотрудником, который только что влился в коллектив, генеративным моделям тоже нужно объяснить, как именно принято писать код в конкретном проекте. Без таких объяснений нейросеть действует интуитивно и выдаёт «код на вайбе», который слабо соотносится с принятыми конвенциями:
- 📡 Повторное изобретение велосипеда: Например, вручную реализованный HTTP-запрос, хотя в проекте уже есть специальная библиотека.
- 🛠️ Избыточные утилиты: ИИ регулярно дублирует вспомогательные функции, хотя они давно реализованы и протестированы в другом модуле.
- 🌐 Игнорирование структуры: Модель меняет глобальные конфиги, хотя есть механизмы локальной настройки на уровне модуля.
- 🎯 Нарушение парадигм: ИИ создаёт классы в проекте, где уже годами используется функциональный подход.
Иными словами, это код, который с виду корректен, но противоречит всем негласным договорённостям команды.
🏃 Спешка вместо качества
Почему это происходит? Автор проводит яркую аналогию с новым бариста, который в попытке успеть обслужить длинную очередь начинает проливать кофе и молоко. В программировании сейчас происходит то же самое: разработчики так увлеклись скоростью, что перестали обращать внимание на качество и долгосрочную поддерживаемость кода.
Спешка превратилась в новую добродетель. Вместо того, чтобы тщательно проверять и направлять ИИ, разработчики стали просто слепо копировать его выдачу в проект, ускоряя выпуск задач, но одновременно создавая огромный технический долг.
🎛️ «Не оставляйте поддержку кода на откуп статистическим весам»
Нейросети (LLM) — это, безусловно, инженерные чудеса, но сами по себе они не гарантируют качество. Их можно и нужно направлять. Качество кода зависит не от того, что использована нейросеть, а от того, как именно ей ставили задачи и какие критерии применялись к результату.
Автор подчёркивает несколько шагов, которые помогут улучшить работу с ИИ:
- 📝 Чёткие и конкретные промпты: Вместо «сделай функцию для запроса» — «используй библиотеку axios и сделай GET-запрос с обработкой ошибок согласно примеру».
- 📚 Примеры и шаблоны: Указывайте конкретные примеры, на которые должна ориентироваться модель.
- ⚙️ Укажите используемые библиотеки и инструменты: ИИ не может угадать принятые стандарты, если о них не сообщить явно.
- 📐 Контролируйте размер и структуру файлов: Делайте запросы точечными и небольшими, чтобы было проще контролировать результат.
💡 Мнение автора статьи
С позиции собственного опыта разработки могу сказать, что «вайб-программирование» сегодня стало реальной угрозой для стабильности крупных проектов. Проблема не в самом ИИ — он лишь отражает подход человека, который им пользуется. Если человек не заинтересован в качестве и не вникает в то, что выдаёт модель, то он неизбежно станет «соучастником» технического хаоса.
На мой взгляд, выход из ситуации один — вернуть ответственность за код на человека, который ставит задачи нейросети. Программисты должны видеть в ИИ не магическую палочку, а своего младшего коллегу, которому нужно объяснить правила и стандарты команды. Только тогда «код на вайбе» превратится в действительно полезный инструмент, способный экономить время и ресурсы без ущерба для качества.
🚩 Итог: заботьтесь о своём коде
ИИ стал неотъемлемой частью разработки, но это не повод забывать о принципах, которые разрабатывались десятилетиями. Если мы хотим, чтобы нейросети приносили пользу, мы должны быть внимательнее к тому, как их используем, и перестать относиться к ним как к магическому решению всех проблем.
Помните: хороший код — это тот, который легко понять, поддерживать и развивать. Даже если он написан на вайбе нейросети, его качество зависит от вас.
🔗 Полезные ссылки: