Фича с Claude заняла у меня столько же, сколько заняла бы руками. Сам виноват

Да, я выпускаю итоги стрима почти через неделю. Вы меня поймали - зашел в репу FastStream, и не смог выйти. Сейчас активно готовим 1.0 релиз, поэтому нет времени писать посты🥲

В прошлую субботу я почти 3 часа вайбкодил фичу в прямом эфире. Конфиги для брокеров в FastStream - issue, которую я сам завел год назад и не трогал. Потому что она, сука, сложная.

Прошла неделя. PR все еще в драфте, и мне предстоит еще много работы.

Сначала про цифры

• 36 минут и 150к токенов были потрачены только на гриллинг. Это фаза, где агент задает вопросы, а я отвечаю • 100к токенов - только на то, чтобы он прочитал кодовую базу перед первым тикетом • 12 тикетов, 42 коммита, +8412/-1076 в 197 файлах

Где я сам налажал

1. Надо было сразу делать wayfinder, а не гриллинг. Гриллинг хорош на обозримой фиче - а эта обозримой не была, и я это знал заранее. 2. И надо было ревьюить по брейкпоинтам: сначала один брокер, потом ревью, потом остальные по аналогии. Я изначально так и хотел. Но был стрим, и я поторопился.

Получилось бы реализовать фичу Claude'ом в таком случае? ХЗ. Но ситуация была бы сильно лучше, чем сейчас.

Фича оказалась еще сложнее, чем я думал

По ходу она подняла наверх довольно существенную архитектурную проблему. Мне пришлось написать еще 4 спецификации вне стрима - чтобы перелопатить текущую реализацию и сделать эту фичу В ПРИНЦИПЕ ВОЗМОЖНОЙ.

Из сегодняшней точки я бы делал так: архитектурный PR отдельно, потом саму фичу медленно с ревью на каждом шаге, и катил бы не за один присест, а итерации в три. Собственно, так я сейчас и поступлю: распилю PR на несколько отдельных, которые можно ревьюить независимо.

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

Вердикт

Конкретно в этом случае - катить фичу клодом по времени ничуть не быстрее, чем самому. Я бы сделал эту же фичу руками где-то за неделю. С клодом получается то же самое, но гораздо нервознее🥲

В общем случае - сильно зависит от проекта. Там, где к архитектуре можно относиться халатно, - да, выигрыш есть. На проектах типа FastStream он отлично ваншотит мелочь (типа такой), а все, что сложнее, идет примерно с той же скоростью, что и руками.

Комбинированный подход - клод на ресерч, код руками - возможно, сработал бы вообще идеально. Но переделывать я не буду. Не хочу тратить еще столько же, и пока еще верю, что смогу смержить текущий PR.

А вот где он был великолепен

Пока я воевал с основной фичей, он вскрыл кучу мелких недостатков в смежных местах. И закрыл их отдельными PR'ами в фоновых сессиях - вообще без моего участия.

Два таких PR уже смержены. Плюс четыре issue, которые я завел за полчаса, и все четыре - про генерацию AsyncAPI:

#3033 - гонять сгенеренную спеку через официальный парсер прямо в CI • #3034 - литеральные скобки в адресах • #3035 - NATS с filter_subjects рендерит пустой адрес • #3036 - channel parameters для шаблонов адресов

Отдельно - pyright

Прямо во время стрима я запустил вторую сессию с одной задачей: проверить, проходят ли наши mypy-тесты на pyright. Предсказуемо, нет - нашлось 72 ошибки. Причем ошибки действительно были в FastStream, а не в проверках pyright. В общем, Claude самостоятельно разобрался и открыл PR, который уже смержили. Я просто сидел в другой сессии и занимался основной работой.

В общем, тот PR, ради которого я вообще стримил, висит. А то, что нашлось попутно, уже в мейне или ждет ревью😅 Ускорения я не получил. Зато Claude помог раскопать кучу багов (докинул мне работы, ага)

Чтож, у нас тут SLOP - победа / поражение. Не знаю, сами скажите?

#AI #opensource