🏢 Теперь про паттерны использования агентов в работе
1️⃣ Я не описываю задачу суперподробно. Пишу, как чувствую — и довольно часто оно норм работает. Если вижу, что решение идет не туда, то очищаю чат и добавляю деталей в первый промпт, а не пытаюсь направить дальнейшими.
2️⃣ ❗️❗️❗️ Очень важно, кмк, приучить себя начинать с тестов. Первый промпт — не про решение задачи, а про то, чтобы написать красные тесты для того, что собираешься делать. Без тестов велик риск с новым этапом промпта тупо откатиться к решению которое ломает предыдущее поведение кода.
3️⃣ Далее надо убедиться, что тесты корректны, что там нет дурацких моков, которые ассертят сами себя, и прочих ловушек.
4️⃣ Чаще всего Zencoder пишет тесты нормально. Я говорю про E2E-тесты, которые поднимают TestContainers и всё вот это. Но тут и курсор и виндсерф кстати делали.
5️⃣ После этого просим реализовать фичу. На работе у нас есть ребята, которые считают, что можно уйти пить кофе и просто попросить агента довести всё до зелёного состояния. Но у меня с E2E так не работает — выходит дольше и хуже, чем если бы я писал сам. Но думаю, что с юнит-тестами такой подход сработал бы отлично.
6️⃣ Поэтому я сначала базово смотрю, что решение идёт в правильную сторону, правлю пару мест руками, что-то меняю, и только потом продолжаю. Зеленю тесты по одному.
7️⃣ Если нужно оптимизировать код, можно попросить написать бенчмарки для разных версий и запустить их. Это тоже работает. Так что если вам навайбкодили неоптимальный по памяти или скорости кусок, подход тот же: навайбкодили бенчмарк, отревьюили его, попросили сгенерировать более быструю версию, проверили, что бенчмарк реально показывает улучшение.
8️⃣ Из критических минусов у меня только одна претензия: когда Zencoder меняет файлы, он сохраняет изменённую версию в папку .zencoder, которая не попадает в git. Поэтому с диффом работать неудобно. И ещё — файлы можно применить либо все, либо никакие, что тоже не всегда удобно.
9️⃣ Если применить файлы и потом поправить их руками, иногда Zencoder не ожидает, что ты что-то поменял, и перезаписывает код без учёта твоих правок. Но, субъективно, это случается куда реже, чем с Cursor или Windsurf. Те чаще вообще игнорируют текущий стейт файла и живут в своём мире со своими правилами. У Zencoder я несколько раз в рассуждениях видел что-то типа “Ага, пользователь поменял файл, давайте его перечитаем”&
🅰️ Итого: Короче, от Zencoder я в абсолютном восторге! Для меня это как открытие ReSharper в 2013-м: тогда казалось чудом, что можно быстро найти любой метод в проекте через Ctrl+N, быстро применить рефакторинг и так далее. Вот Zencoder даёт примерно такое же чувство.
И, честно, сейчас эта штука уже офигенная. Страшно представить, что будет дальше, но мне уже хочется больше такого экспириенса!
PS: Говорят, что у виндсерфа есть расширение для райдера тоже. Я пока не тестил, но думаю, что попозже испробую
Post #330
823
- ❤ 3
- 👍 2