Источник идеи
Вайбкодинг сейчас это одна из самых обсуждаемых тем, которая вызывает огромное количество споров в сети. Я многократно натыкался на посты от разных людей, которые с нескрываемой радостью сообщали что буквально "за один вечер" навайбкодили себе некий проект. Иногда даже звучат смелые идеи о том, что программисты скоро будут не нужны. В то же время есть и посты от разработчиков про то, что не всё так радужно в вайбкодинге и код, который выдают LLM-модели может содержать ряд проблем, да и в целом low code не уничтожил профессию программиста и LLM (который часто путают с ИИ) тоже не уничтожит.
Я решил во всём разобраться сам, тем более что идея о том что за тебя AI-агент делает стартап выглядит очень красиво. А проверить эту идею не стоит практически ничего, особенно если за плечами годы разработки.
Codex и первый проект
Была куплена подписка на ChatGPT Plus, в комплекте с которой идёт Codex. Сходу очень понравилась интеграция Codex и GitHub, а так же приложение для компьютера, в котором можно настраивать мультиагентную разработку - всё очень красиво и удобно. Задача разработчика сводися к созданию репозитория на GitHub и ревью кода, который Codex оформляет в красивае пулл-реквесты.
Первая задача была достаточно простая:
1. Нужен был скетч под ESP32, который бы находил в локальной сети сервер, подключался к нему и передавал значение напряжения на аккумуляторе, а затем засыпал на некоторое время.
2. Нужен был простой сервер, который бы получал данные по сети от нескольких устройств и красиво выводил их на веб-странице.
С этой задачей Codex справился хорошо, в общей сложности получилось 7 пулл-реквестов с различными доработками и я получил готовый код, который прекрасно запускается: https://github.com/AlexeyKutepov/esp32-battery-monitor

Как вы видите из скриншота - всё довольно аккуратно и красиво, а главное работает! Выглядит впечатляюще, ососбенно для людей далёких от IT + часть простых потребностей действительно закрывает. Отсюда и высказывания о том, что программисты больше не нужны :)
А вот кстати само устройство на ESP32, которое я собрал, прошил и упаковал в красивый корпус, напечатанный на 3d-принтере:

Именно его я тестировал в связке с сервером по локальной сети, чтобы убедиться что всё работает и данные передаются. Тут уже много ручной работы, генеративный только код.
Проекты средней сложности
А вот со проектами, которые сложнее, история совсем другая - волшебная кнопка "сделай хорошо" работать перестаёт. Связано это с тем, что чем масштабнее проект, тем вариативнее становится требование. Если говорить про очень подробное требование без вариативности - это по сути алгоритм на естественном языке, то есть практически код :)
В качестве следующей задачи я выбрал разработку Telegram-бота, который проводит тестирование предпочтения пары в практиках 18+ и показывает только совпадения предпочтений. Такой вот безопасный способ паре узнать больше о желаниях друг друга.
С SexTech "стартапом" Codex так же справился и он доступен для тестирования всем желающим:
Несмотря на то, что интерфейс и функционал бота не очень сложный, потребовалось 72 пулл-реквеста с правками и уточнениями функционала:

Изначальный промт для данного бота был достаточно подробный. Кроме того, я проводил дополнительное исследование через ChatGPT и обогощал данными промт уже через него. Однако вариативность так или иначе оставалась и потребовались множественные итерации, чтобы довести приложение до состояния готовности к проду.
Большинство правок касались юзабилити интерфейса и текстовок. В первоначальной версии текстовки были сухие и формальные, а интерфейс не удобный и не логичный в использовании. Эти все моменты приходилось шаг за шагом проверять и тестировать вручную.
Что касается автоматического тестирования субагентом Codex, то оно тоже не дало желаемого эффекта. Часть багов он конечно же находит, однако на юзабилити бота решительно повлиять не может. Ещё мне пришлось потом руками удалять неиспользуемые методы, которые были рождены в предыдущих итерациях и куски кода, которые ничего не делали - такие галлюцинации в моём случае Codex выдавал достаточно часто.
Из забавного - если дать агенту задание, которое невозможно выполнить из-за ограничений API библиотеки, то он начинает придумывать костыли с рефлексией и несуществующими методами, вместо того, чтобы сообщить что получение таких-то данных в рамках такой-то библиотеки не предоставляется возможным.
Несмотря на некоторые сложности, данный эксперимент завершился успешно. Приложение написано, оттестировано и работает в проде. Без Codex у меня ушло бы больше времени на написание кода и продумывания логики.