Как стать автором
Обновить

Пробуем Junie от JetBrains на реальной задаче (или как я попал в рассказ Азимова)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров7.4K
Всего голосов 36: ↑35 и ↓1+38
Комментарии43

Комментарии 43

Что мы даём джунам в первую очередь? Правильно — писать тесты.

И сколько джунов остаётся в таком прекрасном коллективе спустя неделю?

Столько, что приходится безуспешно тыкаться в т9, при этом резюмируя "AI-агенты — это будущее"

В смысле, примерно в π раз меньше, чем землекопов?

Прямо сейчас итоговая эффективность действительно не очень большая, но я и подумать не мог о таком уровне пару лет назад. Если это хоть сколько то доведут до ума, то я вполне могу представить себе, что даю нейронкам писать всякие мелкие кусочки, пока сам буду заниматься своими делами.

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

Идеальная задача для новых разработчиков, даже не обязательно джунов.

Вы реально так делаете или просто сейчас фантазируете?

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

полезная задача, на которую обычно не хватает времени у основных разработчиков

Проблема вот тут.

Да, я именно это подразумевал, возможно стоило написать, что "первой" задачей.

Будто бы тесты должны, по хорошему, писаться сразу. А новичкам (не только джунам) лучше давать фиксить небольшие и не горящие баги)

Обычно, все кто пришёл.

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

А говорят, рынок перегрет.

Рынок действительно перегрет со стороны работников.

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

Сейчас на вакансию подразумевающую джуна прилетает по 1000 резюме. Кроме того мидлы появились на рынке труда. Так что, последние полтора года мы даже не ищем джунов, сразу мидлов берём.

Джунов вы не берете, но все, кто пришел — пишет тесты. Ясно.

Вы с чего это взяли ? В моём ответе такого не было.

По поводу "brave mode", попробовал "yolo mode" в курсоре, тот несколько раз не смог запустить проект, прописал "rm -rf projectdir/" и пошел заново писать :)

Прям как и все вайбкодеры

Ахаха, дочитал пост и увидел про то как ии агент удаляет тесты, он прям как 70% джунов

Это больше всего и повеселило )

Что мы даём джунам в первую очередь? Правильно — писать тесты.

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

А джуны берут в первую очередь задачи, где не нужно глубокое погружение в контекст. Баги с четким описанием или предельно разжеванные аналитиками таски. А потом вообще все подряд берут.

У вас 100% кода покрыто тестами ? Всегда есть место в проекте которое не настолько важное, что бы сразу писать тесты (ну или было таковым когда создавалось), но которое неплохо бы покрыть тестами.

И в рамках неизбежной задачи "погружение в проект", почему бы не "погружаться в проект" с конкретной целью ?

Мне казалось, это нормальная практика.

У вас 100% кода покрыто тестами?

Нет.

Всегда есть место в проекте которое не настолько важное, что бы сразу писать тесты […]

Нет. Таких мест в проектах, над которыми мне доводилось работать в последние 20 лет, не существует.

Ну, полагаю, вы молодец. Удачи вам с проектами и тестами.

Мне казалось, это нормальная практика.

Ну в бигтехе может и нормальная. Там раньше джунов нанимали вагонами на запас. А у манагера как раз KPI по покрытию. Но я такого нигде не видел, кроме как в Сбере.

Тесты и покрытие - штука не такая и простая. Чем ближе к 100% тем экспоненциально сложнее добавлять новые кейсы. Бывает, что тест, который сдвинет покрытие с 90% до 91% - это задача вообще не для новичка без контекста.

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

Справедливости ради, в примере из статьи надо было ещё инфраструктуру тестов настроить, либы поставить и т.д.

Но с этой частью бот как раз справился.

Бывает, что тест, который сдвинет покрытие с 90% до 91% - это задача вообще не для новичка без контекста.

По своему опыту я бы даже сказал, что двигать выше 80% это уже не просто и 10 раз подумаешь, а стоит ли оно того.

Такой сразу вопрос, а почему оно может быть не покрыто тестами? Только потому что оно не настолько важное?

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

Поэтому нужны какие-то вводные, что код можно тестировать не только покая по кд на уровне модулей.

Да наверно всякие ситуации могут быть, я не берусь их все описывать.

Делать бесполезные тесты, это я думаю скорее грустно, чем стрессово

Спасибо, что рассказали о своем опыте!

Вот почему когда вижу восторженное "вау! как круто! ИИ пишет 90% кода!" - вот тогда нет подобных отчетов, а сплошные эмоции и никакой конкретики, чтоб понять, что же там ИИ пишет, и как ему задачи ставят?

В итоге я не понял, как этим людям ИИ пишет 90% кода. Возможно 90% этого кода это бойлерплейт.

Получил инвайт с месяц назад, сравнивал с Курсор. Июнь ну очень медленный, рассуждениями не впечатлил, а когда создал доку по проекту все время пытался ее дописать вместо кода, указывая ее как rtfm референс. Отправил отчёт в Брейнс и снёс.

Кто нибудь смог заставить его работать в России?

Через реверс прокси. Заранее: оно этого не стоит

Я в России нахожусь.

Успел попробовать Junie в EAP режиме, а потом и в 2025.1 когда прислали купон на месяц. Общие впечатления: сделает что просят, но это будет очень долго.

Единственный плюс, который для себя выделю - купон был на AI-assistant, а там внутри добавили в бете edit-режим, который вместе с клодом делают всё то же самое, но в разы быстрее. Вот этот режим очень рекомендую.

Делал похожую задачу для бэкэнда на Python + FastApi. Около 20 методов в API.

Я использовал Cursor + Claude 3.7 Sonnet Thinking;  Добавил несколько MCP:
- readonly sql в Postgress
- Возможность искать в интернете

Разрешил запускать любые MCP без спроса, в том числе любые команды в консоли.

Поставил задачу сначала как : Составь план тестов в файле test_plan.md
Потом немного отредактировал сценарии поставил новую задачу:
"Реализуй все тесты из test_plan.md, используй pytest; Пишем только e2e тесты. Бэкэнд не правь, если с ним что-то не так фиксируй это как техдолг в readme.md. Используй любые MCP по необходимости"

За пару сотен итераций он написал покрытие вполне приемлимо, только пара сценариев были не супер. Зафиксировал десяток замечаний и только в конце решил, что бэкэнд совсем говно и пошел пофиксить там ошибку. Для этого нашел процесс бэкэнда, кильнул и перезапустил.

В одном месте сжульничал, и изменив логику сценария так, что она маскировала багу бэкэнда.

В целом получилось сносно, но много лапшекода, который возможно дольше перепроверять, чем изначально было бы тесты написать :)

За пару сотен итераций

Звучит так, что вы написали промптов больше, чем на выходе получили кода :)

Когда я говорил пара сотен итераций - это вызовы API LLM для генерации. В Курсоре есть ограничение, что после 25 вызовов нейронка ждет подтверждения, что стоит продолжать. Чтобы кожаный мешок взглянул, все ли в порядке. А то можно весь лимит обращения к LLM выесть потому, что агент фигню какую-то делал.

Промпт был стартовый, я не вмешивался в процесс

Курсор стоит 20$ в месяц. Это IDE + доступ к разным нейронкам. За эти деньги получается 500 дорогих обращений в LLM и бесконечно дешевые. За пару месяцев использования пока ни разу не вышел за лимиты.

Т.к. я не в РФ, то за vpn платить не приходится.

А если сравнить с JetBrains? Я и про функционал и про цену.

Ничего не знаю про JetBrains, их агентом еще не пользовался. Я ранее пробовал PyCharm + Copilot, но это был совсем другой уровень использования.

Весь cursor - это форкнутый VSCode настроенный на работу с LLM. Если вы еще не знакомы, лучше статью какую почитать или видео посмотреть. По сравнению с копилотом это был другой уровень.

+ из коробки работают MCP, это фактически очень простое расширение функционала LLM внутри IDE. Можно прям просить ходить в интернет и гуглить, или перед написанием кода ознакомиться с документацией по библиотеке.

PS
Волшебства конечно не будет, но я рекомендую взглянуть и изучить

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации