🤭 Да или нет вайб-кодингу?
На днях участвовал в дебатах на сабжевую тему, в рамках конференции Data Fusion. И остался под впечатлением, скажем так.
Меня пугают некоторые CTO (благо хоть — из других компаний), которые уже сейчас готовы пересадить всех своих разработчиков на кодинг исключительно с помощью агентов, а всех несогласных — уволить, и заменить ИИ.
Я не луддит. Последние 7-8 месяцев, число строк кода, которые мне пишет ИИ, исчисляется тысячами, иногда — десятками тысяч в месяц. Я перепробовал туеву хучу решений, от Claude Code до весьма недооцененного Oh-My-Pi, плотно поработав с каждым на реальных проектах минимум неделю-две, чтобы решить для себя вопросы его применимости.
ИИ-кодинг прекрасно работает для PoC и MVP, внутренних утилит, быстрой проверки гипотез — везде, где стоимость ошибки низкая. Неплохо справляется и с boilerplate-кодом: ИИ сейчас вполне способен запилить по mockup'ам добротный фронт и грамотного подвязать его к запиленному им же бэку, на уровне чуть выше тривиального CRUD, спрятанного за REST API. Ок. Искренне рад за тех, у кого работа сводится только к этому.
Но даже в этом случае, до того, чтобы стать прод-стандартом, ИИ-кодингу ещё — как до Луны. Стандарт предполагает зрелые процессы вокруг ИИ-разработки, а у большинства компаний их всё ещё нет. Да и пока толком нет понимания, как их выстраивать.
Качество ИИ-кода у более сложных задач, чем обычный веб, ещё и с непростой логикой и алгоритмами, контролем доступа и параллельными вычислениями — вообще отдельная (и весьма печальная) тема. Говорю это, как тот, кто именно такими задачами и занимается 😢
Иллюзия готового продукта
Главный риск ИИ-кода — не в том, что он плохой, содержит баги, уязвимости и т.п. В том-то и беда, что он выглядит убедительно хорошим. Агент выдаёт что-то, что компилируется, проходит тесты, рендерит красивый UI. И возникает непреодолимый соблазн пустить это в прод, не заглядывая внутрь. Тем временем, с точки зрения, как функциональности, так и стабильности с безопасностью, там всё... «альтернативно».
Раньше, когда код писался вручную, это всё уже являлось проблемой. Теперь же, когда он создаётся мгновенно и в огромных объёмах, количество дефектов в нём растёт кратно. И, если все прочие участники процесса разработки — всё ещё люди, то это таки становится узким местом.
Cost-to-deliver vs cost-of-ownership
Все говорят: ИИ снижает стоимость разработки. И это правда — cost-to-deliver падает. Но вот cost-of-ownership — нет. Эксплуатация, поддержка, инциденты, комплаенс. Если ИИ-код не проходит через тот же девсекопс-пайплайн... исследования по-прежнему показывают, что он содержит уязвимости чаще, чем написанный опытными разработчиками. Так это точно дешевле? Или просто кто-то внутрь не заглядывал?
Инженер ≠ оператор промптов
Человек, который виртуозно промптит, но слаб без AI — это инженер? Я считаю — нет. Инженер — тот, кто понимает, почему код работает, а не только что он делает. Кто может объяснить, почему в промпте или ризонинге были приняты те или иные решения, по всем аспектам. ИИ снижает порог входа в написание кода — это прекрасно. Но не в предметную область. И теперь нужно не просто писать код, а уметь промптить чуть выше уровня «сделай мне збс», писать спеки, и обеспечивать качество кода, который ты не писал сам.
За любой инцидент отвечать потом придется всё же человеку, а не ИИ.
Возможно, через 2-3 года инженерам вообще не нужно будет смотреть в ИИ-код и разбираться в нём. Мне бы очень хотелось, чтобы однажды это стало возможным. Но сейчас «попромптил и задеплоил» звучит так же дико, как «я не пишу тесты — и так работает».
Поймите правильно, я не против ИИ-кодинга. Сам — могу, умею, практикую: прототипирую, экспериментирую, кайфую от скорости, пропускаю через всё это десятки идей в день, и готовлю их для прода. Но между «ИИ-кодом, который работает» и «кодом, который можно влить в продукт» — пока ещё пропасть.
⚠ TL;DR: ИИ-кодинг сейчас — ок, но без зрелых процессов, построенных вокруг него, с учетом всей его специфики и сопутствующих рисков — чистое безумие. Или непрофессионализм, тут уж кому как.