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

Оба этих нарратива — карикатуры на реальность. В предыдущих статьях я рассказывал о своей работе над разными вайб-кодинг-проектами. Мы видели, как они одновременно и удивительны, и требуют много труда. В этой статье я глубоко погружусь в вопросы поддержки и устойчивости, возникающие при передаче контроля над кодом машине.

Когда я был молодым продакт-менеджером, меня отправили в Лос-Анджелес поддерживать нашего вице-президента по продажам. Он решил отвести меня в один из своих любимых ресторанов. Этот ресторан специализировался на кухне фьюжн, то есть шеф-повар смешивал разные влияния в своих блюдах. Он славился своим фирменным блюдом от шефа — тем, что шеф решал приготовить для вас этим вечером.

Помню, я гадал, во что же я ввязался. Я знал, что получу еду, но понятия не имел, что мне придётся проглотить. Как оказалось, еда, которую мы ели тем вечером, была… странной. Съедобной. Но не тем местом, куда я пошёл бы добровольно снова.

Агентное кодирование очень похоже на поход в тот ресторан. Вы знаете, что репутация используемого вами ИИ для кодирования хороша, но вы понятия не имеете, что вам доставят. У вас мало понимания реального кода, приходящего от ИИ. Вам в основном придётся это съесть, независимо от того, что вам подали.

Когда агенты пишут ваш код, это похоже на то, как если бы кучка подрядчиков или подчинённых писала ваш код. Пока вы не протестируете и не оцените его, вы понятия не имеете, что получите.

Всё зависит от вашего промпта. «Мусор на входе — мусор на выходе» приобретает гораздо более глубокий смысл, чем старая избитая фраза. Если вы не даёте чёткий промпт и не поддерживаете диалог с достаточной ясностью и контролем, код, который вы получите от ИИ, будет трудно переварить.

Инженерные менеджеры сталкивались с проблемой управления подрядчиками ещё со времён пирамид. Назначать работу и оценивать результат — вот чем занимаются инженерные менеджеры. Поддержание качества и контроля в этом процессе — основа разработки ПО.

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

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

Я предпочитаю давать ИИ одну простую задачу. Как только она успешно выполнена, я даю следующую. Так меньше шансов, что либо ИИ, либо я потеряем нить общего плана.

Будучи единственным разработчиком, я писал код строка за строкой. Я выкладывался над каждой строкой. Я знал всё о своём коде. Но когда я был инженерным менеджером, мне приходилось полагаться на свои команды и отдельных разработчиков в них.

Конечно, у нас были кодеры (примерно эквивалент агентов). Но мне всё равно нужно было выстроить дисциплину тестирования и интеграции в систему, чтобы быть уверенным, что то, что сдаёт любой из наших кодеров или подрядчиков, работает со всем остальным.

Если вы собираетесь использовать агентное кодирование, вам придётся делать то же самое. Контрольные точки на каждом этапе. Тщательно отслеживайте интеграцию. Предполагайте, что вы принимаете поставку от внешних подрядчиков, и поэтому проверяйте их работу перед включением в основной проект.

У меня есть друг, которому я боюсь рассказывать о своих софт...