Как стать автором
Обновить

Представлено руководство по ответственной разработке с использованием ИИ в режиме вайб-кодинга

Время на прочтение4 мин
Количество просмотров3.6K

Руководитель отдела инжиниринга в Google Эдди Османи предложил правила, следование которым позволит успешно пользоваться инструментами вайб-кодинга. По его словам, развитие ИИ-помощников не является оправданием для низкокачественного кода.

«Давайте признаем хорошее: кодирование с помощью ИИ может изменить правила игры. Оно снижает барьеры для новых программистов и непрограммистов, позволяя им создавать работающее программное обеспечение. Это разблокирует креативность — больше людей могут решать свои собственные проблемы с помощью пользовательского программного обеспечения… Однако, как скажет вам любой опытный инженер, скорость ничего не значит, если по дороге отваливаются колёса. И вот тут-то и начинают проявляться трещины — в разрыве между атмосферой и реальностью создания поддерживаемого, надёжного программного обеспечения», — объясняет инженер.

Османи призвал относиться к ИИ-помощникам как к стажёрам, которые могут выдать черновой код, но в итоге продукт нужно будет критически оценить, доработать и убедиться, что он соответствует планке качества. Для этого нужно как минимум прочитать сгенерированный код, реорганизовать его в модули для ясности, добавить обработку пограничных случаев, поработать над типами и интерфейсами.

«Рассматривайте вывод ИИ как черновик, который должен пройти проверку кода (даже если эту проверку проводите только вы). В команде это означает, что если разработчик использовал ИИ для генерации фрагмента кода, то он должен быть готов объяснить и защитить его в беседе с коллегами», — указывает Османи. Он подчёркивает, что высокоуровневое проектирование и критические решения должны оставаться за человеком, а ИИ должен быть помощником только в рутинной работе.

Инженер предложил несколько простых правил вайб-кодинга:

  1. Всегда проверяйте код, сгенерированный ИИ — никаких исключений. Каждый блок кода, который создает ИИ, должен рассматриваться так, как если бы его написал младший инженер. Проведите проверку кода либо индивидуально, либо с коллегой.

  2. Установите стандарты кодирования и следуйте им. Инструменты ИИ будут имитировать любой код, на котором они были обучены. Определите руководства по стилю, шаблоны архитектуры и лучшие практики вашей команды и убедитесь, что любой сгенерированный ИИ код рефакторится для соответствия. Если ваш проект использует определённую архитектуру (например, многоуровневую архитектуру с классами сервисов/репозиториев), не позволяйте ИИ вставлять некоторые специальные вызовы базы данных в код пользовательского интерфейса — исправьте его, чтобы он соответствовал вашим слоям. Рассмотрите возможность создания проверок линтинга или статического анализа специально для распространённых ошибок ИИ (например, пометка использования устаревших API или слишком сложных функций). Это автоматизирует контроль качества выводов ИИ.

  3. Используйте ИИ для ускорения, а не в качестве автопилота. На практике это означает использование вайб-кодинга для ускорения хорошо понятных задач, а не для того, чтобы думать за вас. Отличные примеры использования: генерация шаблона, создание каркаса компонента, перевод одного языка на другой, составление простого алгоритма из псевдокода. Рискованное использование: пусть ИИ спроектирует ваш модуль с нуля с минимальным руководством или сгенерирует код в области, которую вы вообще не понимаете.

  4. Тестируйте, тестируйте, тестируйте — ИИ не гарантирует правильность магическим образом. Если код написал ИИ, он может даже помочь вам написать некоторые тесты — но не полагайтесь исключительно на них, так как они могут пропустить пограничные случаи. Проводите также ручное тестирование, особенно для функций, с которыми сталкивается пользователь: кликайте по пользовательскому интерфейсу, пробуйте разные входные данные, смотрите, как он себя ведёт. 

  5. Итерируйте и совершенствуйте — не принимайте первое, что вам дает ИИ, если оно вас не устраивает. Вайб-кодинг — это итеративный диалог. Если первоначальный вывод неуклюжий или запутанный, вы можете попросить ИИ улучшить его («упростить этот код», «разбить на более мелкие функции» и т. д.). Или вы можете взять черновик и реорганизовать его самостоятельно. Часто хорошим подходом является использование ИИ в циклах: запросить реализацию, выявить слабые места, затем либо запросить исправления, либо вручную откорректировать и повторить.

  6. Знайте, когда сказать «нет». Иногда вайб-кодинг просто не тот инструмент. Частью его ответственного использования является распознавание сценариев, в которых требуется ручное кодирование или более глубокая работа по проектированию. Например, если вы имеете дело с критически важным модулем безопасности, и, вероятно, захотите тщательно его спроектировать, возможно, используя ИИ только для помощи с небольшими частями. Или, если ИИ продолжает выдавать запутанное решение простой проблемы, остановитесь и напишите его самостоятельно — в конечном итоге вы можете сэкономить время. 

  7. Документируйте и делитесь знаниями. Убедитесь, что любой код, исходящий от ИИ, документируется так же тщательно, как и написанный вручную. Если были неочевидные решения или если вы подозреваете, что другие могут быть сбиты с толку тем, что выдал ИИ, добавьте комментарии. В обсуждениях в команде будьте открыты относительно того, что было сгенерировано ИИ, а что нет. Это поможет рецензентам уделять особое внимание данным разделам.

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

«Быстрая отправка глючного, неподдерживаемого кода — это ложная победа — вы просто мчитесь к обрыву. Лучшие инженеры будут балансировать между этими двумя путями: использовать ИИ, чтобы двигаться быстрее, не ломая ничего (по крайней мере, не ломая ничего больше, чем мы уже делаем!). Речь идет о поиске той золотой середины, где ИИ выполняет тяжёлую работу, а люди обеспечивают, чтобы все шло правильно», — заключил Османи.

Ранее схожую точку зрения выразил инженер-программист Canva Сергей Целовальников. Он опубликовал пост, посвящённый развитию тренда вайб-кодинга. По мнению инженера, разработка кода с помощью ИИ не заменит работу людей в области промышленного софта.

Теги:
Хабы:
+11
Комментарии5

Другие новости

Истории

Работа

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область