Комментарии 43
Что мы даём джунам в первую очередь? Правильно — писать тесты.
И сколько джунов остаётся в таком прекрасном коллективе спустя неделю?
Столько, что приходится безуспешно тыкаться в т9, при этом резюмируя "AI-агенты — это будущее"
В смысле, примерно в π раз меньше, чем землекопов?
Прямо сейчас итоговая эффективность действительно не очень большая, но я и подумать не мог о таком уровне пару лет назад. Если это хоть сколько то доведут до ума, то я вполне могу представить себе, что даю нейронкам писать всякие мелкие кусочки, пока сам буду заниматься своими делами.
А в чем проблема? Написание тестов - это во-первых хороший способ вкатиться в проект, понять основные компоненты, как запускать бизнес-логику. Во-вторых это полезная задача, на которую обычно не хватает времени у основных разработчиков. И в-третьих это полезная не срочная задача, с которой джун может спокойно возиться сколько угодно, а если пофейлит - не страшно.
Идеальная задача для новых разработчиков, даже не обязательно джунов.
Вы реально так делаете или просто сейчас фантазируете?
полезная задача, на которую обычно не хватает времени у основных разработчиков
Проблема вот тут.
Да, я именно это подразумевал, возможно стоило написать, что "первой" задачей.
Будто бы тесты должны, по хорошему, писаться сразу. А новичкам (не только джунам) лучше давать фиксить небольшие и не горящие баги)
Обычно, все кто пришёл.
Если что, я не подразумеваю, что джун будет только писать тесты, но в проекте всегда есть место, до которого не доходят руки. Так что, я полагаю, что погружение в проект пройдёт лучше, если во время этого не просто ходить смотреть, а сделать что то полезное, но не меняющее функционал.
А говорят, рынок перегрет.
Рынок действительно перегрет со стороны работников.
5 лет назад, мидлов не было на рынке труда и бизнес модель небольших аутсорс компаний заключалась в том, что бы взять джуна, быстро доучить его до мидла, и год-полтора получач прибыль пока он не уйдёт в бигтех какой нибудь.
Сейчас на вакансию подразумевающую джуна прилетает по 1000 резюме. Кроме того мидлы появились на рынке труда. Так что, последние полтора года мы даже не ищем джунов, сразу мидлов берём.
По поводу "brave mode", попробовал "yolo mode" в курсоре, тот несколько раз не смог запустить проект, прописал "rm -rf projectdir/" и пошел заново писать :)
Прям как и все вайбкодеры
Что мы даём джунам в первую очередь? Правильно — писать тесты.
Как это у вас у всех работает? Сеньор-помидор наворачивает свои гениальные спагетти, не проверяя работоспособность, и спускает эту радость джунам, чтоб те тесты написали? В моей части мультивселенной кто код трогал, тот и тесты пишет.
А джуны берут в первую очередь задачи, где не нужно глубокое погружение в контекст. Баги с четким описанием или предельно разжеванные аналитиками таски. А потом вообще все подряд берут.
У вас 100% кода покрыто тестами ? Всегда есть место в проекте которое не настолько важное, что бы сразу писать тесты (ну или было таковым когда создавалось), но которое неплохо бы покрыть тестами.
И в рамках неизбежной задачи "погружение в проект", почему бы не "погружаться в проект" с конкретной целью ?
Мне казалось, это нормальная практика.
У вас 100% кода покрыто тестами?
Нет.
Всегда есть место в проекте которое не настолько важное, что бы сразу писать тесты […]
Нет. Таких мест в проектах, над которыми мне доводилось работать в последние 20 лет, не существует.
Мне казалось, это нормальная практика.
Ну в бигтехе может и нормальная. Там раньше джунов нанимали вагонами на запас. А у манагера как раз KPI по покрытию. Но я такого нигде не видел, кроме как в Сбере.
Тесты и покрытие - штука не такая и простая. Чем ближе к 100% тем экспоненциально сложнее добавлять новые кейсы. Бывает, что тест, который сдвинет покрытие с 90% до 91% - это задача вообще не для новичка без контекста.
Короче, речь о том, что джун - это не выделенный тестописатель, который на счет раз заменяется нейронкой. А на хабре почему-то именно такой нарратив сложился.
Ну тут не этот случай. Базовый, дешёвый тест самых "начальных процентов"
Справедливости ради, в примере из статьи надо было ещё инфраструктуру тестов настроить, либы поставить и т.д.
Но с этой частью бот как раз справился.
Бывает, что тест, который сдвинет покрытие с 90% до 91% - это задача вообще не для новичка без контекста.
По своему опыту я бы даже сказал, что двигать выше 80% это уже не просто и 10 раз подумаешь, а стоит ли оно того.
Такой сразу вопрос, а почему оно может быть не покрыто тестами? Только потому что оно не настолько важное?
Мне просто любопытно, какой стресс будет у джуна, если ему скинуть задачу на написание теста, которая не предназначена для тестов. Ну, это такая куча говно-кода, тесты для которой в принципе бесполезная вещь, потому что любой ближайший рефакторинг заставить их писать снова. Да и сами тесты будут дрянь.
Поэтому нужны какие-то вводные, что код можно тестировать не только покая по кд на уровне модулей.
Спасибо, что рассказали о своем опыте!
Вот почему когда вижу восторженное "вау! как круто! ИИ пишет 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 выесть потому, что агент фигню какую-то делал.
Промпт был стартовый, я не вмешивался в процесс
А сколько все это стоит в вашем случае? Вместе с впн разумеется и ide, если платная.
Курсор стоит 20$ в месяц. Это IDE + доступ к разным нейронкам. За эти деньги получается 500 дорогих обращений в LLM и бесконечно дешевые. За пару месяцев использования пока ни разу не вышел за лимиты.
Т.к. я не в РФ, то за vpn платить не приходится.
А если сравнить с JetBrains? Я и про функционал и про цену.
Ничего не знаю про JetBrains, их агентом еще не пользовался. Я ранее пробовал PyCharm + Copilot, но это был совсем другой уровень использования.
Весь cursor - это форкнутый VSCode настроенный на работу с LLM. Если вы еще не знакомы, лучше статью какую почитать или видео посмотреть. По сравнению с копилотом это был другой уровень.
+ из коробки работают MCP, это фактически очень простое расширение функционала LLM внутри IDE. Можно прям просить ходить в интернет и гуглить, или перед написанием кода ознакомиться с документацией по библиотеке.
PS
Волшебства конечно не будет, но я рекомендую взглянуть и изучить
Кстати, в IDEA появился бесплатный уровень использования AI с 16 апреля в 2025.1
Пробуем Junie от JetBrains на реальной задаче (или как я попал в рассказ Азимова)