Image

Оценка Cursor: какая грейд у ИИ-ассистента для разработчиков?

Cursor сделали программисты для программистов. Это не очередной чат-бот, это полноценная среда разработки. Он очень неплохо интегрирован с возможностями больших языковых моделей. 

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

cfbff813522a59a75eae8084ba576861

Cursor — это форк VS Code со встроенными ИИ-функциями. Он позволяет общаться с кодовой базой, генерировать код, проводить рефакторинг и многое другое. И всё на мощностях моделей вроде GPT-4. 

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

Итак, чтобы оценить «грейд» Cursor, классифицируем задачи, с которыми сталкиваются разработчики. Мы условно разделяем их по уровню неопределенности:

  1. Задачи с низкой неопределенностью: Четко сформулированные, с понятным ожидаемым результатом. В общем, мечта, а не задача. Это всё в духе «напиши функцию, которая сортирует массив чисел» или «переименуй переменную temp в userScore во всем проекте». Отлично подходит для джунов.

  2. Задачи со средней неопределенностью: Есть общая цель, но детали реализации неясны. Например, «реализуй экран входа в приложение по дизайну» или «оптимизируй этот сетевой запрос». Такие задачки обычно решает мидл.

  3. Задачи с высокой неопределенностью: Требуют архитектурных решений, анализа бизнес-требований и глубокого понимания системы. Например, «спроектируй модуль для работы с офлайн-режимом» или «исправь баг ‘приложение иногда падает’». С этими задачами разбираются сеньоры.

Теперь давайте смотреть, как Cursor справляется с задачами каждого уровня.

Cursor Junior

На этом уровне Cursor — настоящий папкин бродяга, мамкин симпатяга. Он блестяще справляется с задачами с низкой неопределенностью, которые часто достаются джунам.

  • Автокомплит и генерация кода

Написать бойлерплейт, реализовать стандартный алгоритм, сгенерировать модель данных по JSON — всё это Cursor делает за секунды. Почему это полезно? Тут всё по классике — нет рутине, да — более важным вещам.

  • Пакетные изменения

Нужно переименовать метод в десятках файлов? Изменить сигнатуру функции и поправить все её вызовы? Раньше это была монотонная и чреватая ошибками работа. Cursor делает это одной командой. Он сам находит все вхождения и вносит правки.

  • Поддержка юнит-тестов

Покрытие кода тестами — важная, но далеко не всегда увлекательная задача. Cursor отлично справляется с написанием юнит-тестов для уже существующего кода. Он анализирует функцию и генерирует тестовые кейсы, которые покрывают основные сценарии.

Профит

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

Примеры

Посмотрим на Cursor в действии. Для начала дадим чётко поставленную задачу в рамках одного файла. 

Мы привыкли общаться с Cursor на английском, чтобы не засорять контекст переводом заданий и команд. Так мы понимаем друг друга лучше.

10affaa5feef42eba1ffefe42e761084

Смотрим на результат выполнения. Видим, что ИИ чуток посвоевольничал и заменил свойство wasChanged на новое — transitionType.

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

71ef2d69e6359c6e87f4c0be4430d271

Просто и лаконично. 

6d7a6690aa14142d38d3c6e646094b86

Cursor поймет эту просьбу без указания файла, потому что он хранит контекст открытого чата.

Перейдём к задачам посложнее и попросим Cursor добавить юнит-тесты файлам, с которыми работали.

5b8e2cfe8398281b78f6ab67d25a8e92

Чтобы придерживаться стиля написания юнит-тестов, дадим ему почитать документацию. Cursor как старательный Junior прочитает её и примет к сведению. Не лишним будет добавить в контекст и актуальный пример тестов, чтобы нашему виртуальному коллеге было на что опираться.

da65a39ffca039601b0973b47526b5f3

Большинство ИИ-моделей, доступных в Cursor, примечательны своей, скажем так,  болтливостью. 

В конце задачи они распишут свои действия и проведут самопроверку. Это саммари поможет нам при ревью решения, но защитит ли от ошибок?

f687ff620eb5a8fde893e5fc739c08d4

Не совсем. Здесь видим, что ИИ «выдумал» модель и сгенерированные тесты не скомпилировались. Будем ли мы это исправлять своими руками?

88935043b342b37a3a989a3b9c648596

Конечно же, нет. Пусть ошибки исправляет тот, кто их совершил. Добавим в контекст нашего чата правильную модель юзера и дадим Cursor исправить ситуацию.

28169ffeb0de65a59a8078fa06b60f26

Снова делаем ревью и видим, что Cursor исправляет неправильные инициализаторы, но не останавливается на этом.

2ee5a0b84b0ad48df9fb64fe68caedc0

Он идёт дальше и сам находит enum, который действительно используется в сервисе, и исправляет ошибку. 

Этих ошибок можно было бы избежать, если бы в начальном задании мы сразу указали эти сущности. Как говорится «без внятного ТЗ — результат ХЗ». 

04125cf75df6292da5d3c166ee5ca1b5

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

0cd0beda0ee6ffb8585e4efb50a30c4e

Такая ошибка с недостаточным контекстом может встречаться и при использовании сторонних зависимостей. Ситуация усугубляется тем, что для мокирования протоколов мы используем библиотеку Mockable. Она генерирует моки протоколов, используя макросы. То есть сгенерированный мок появляется лишь при компиляции. 

Более того, эта библиотека не генерирует моки для методов и свойств, добавленных в extension. Cursor просто не видит этого в файлах, но мы объясним ему это.

0c3c347b23bbdf4e965e100b090a9e4a

И он исправит проблему.

Cursor Middle

Более опытным разработчикам обычно дают более неопределенные задачи и просят найти пути решения задачи. Иными словами, их допускают к проектированию. Cursor здесь перестает быть просто исполнителем и становится настоящим напарником в парном программировании.

Ключевой подход для задач со средней неопределенностью — это работа через implementation plan

1. Постановка задачи и запрос плана

Вместо того, чтобы просить сразу написать код, мы ставим более общую задачу. Например, «добавить возможность сохранять адрес пользователя в профиле». И просим Cursor составить план реализации.

2. Ревью и корректировка плана

ИИ предложит шаги: «создать модель данных для адреса», «добавить поля на U», «реализовать метод сохранения в презентере», «вызвать метод в репозитории». На этом этапе мы, как более опытный разработчик, ревьюим план. Возможно, мы захотим использовать другую архитектуру, поправить названия или добавить шаг для валидации данных. Вносим правки прямо в план.

3. Отправка плана на реализацию

После утверждения плана мы отдаём его Cursor. Он последовательно реализует каждый пункт, внося изменения в кодовую базу.

4. Ревью реализации

Финальный этап — ревью кода, написанного ИИ. Он может упустить какие-то детали или выбрать не самый оптимальный способ, так что человеческий контроль всё ещё нужен.

Помним, что опасно отпускать вожжи. На каждом этапе нужно добавлять контекст. Указывать необходимые файлы и инструкции, если они есть. Без контекста ИИ как цыганка — залезет в душу, предскажет дальнюю дорогу и оставит без денег.

Профит

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

Экономия времени тут тоже существенна, особенно в задачах, требующих изменений в нескольких слоях приложения.

Пример

В этот раз минимально описываем задачу, чтобы обозначить стартовую точку и конечный результат. Ждём, что промежуточные ходы, Cursor найдёт самостоятельно. Но важно указать, в каком виде мы хотим получить план реализации.

2ac749a807a2d8b7281dbd7abecb6892

Очень удобно ревьюить нумерованный список, где каждый пункт списка — атомарная задача для ИИ.

5a6c949869fc3ad113ba59b7b3ee07e6

Ревьюить составление плана можно прямо в процессе или с выжимки. Иногда с первых шагов можно понять, что Cursor не понял задачу и начал усложнять. Тогда можно скорректировать запрос и попробовать заново.

Если же в процессе мы не замечаем ничего подозрительного, можно будет перейти к проверке предлагаемого плана.

ccb1ce96ead1b85d84a9c4be4815ea89

Замечания можно оставить туду-шками. Помним, что если ИИ накосячил, то и исправлять должен сам. 

a63d6d58a3c017de6f4edeeb96aff39b

Одним запросом корректируем план и повторяем его ревью.

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

809dd7e3e7d16d827faf65182809ee7a

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

ca3aa46cc63b4a6c93c21927d10e020a

После выполнения стоит проверить реализацию подобным запросом.

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

Подход с планом реализации оказался настолько продуктивным, что в новой версии Cursor появился отдельный тип запроса для планирования.

fe07cf3d2042475bd5832e83b0dbeb31

Но он не очень хорошо работает в связке с MCP. Вместо того, чтобы использовать инструмент и посмотреть, что же мы выбрали в figma, Cursor завалил нас вопросами.

83f398823db640f4ba74545421ca68a6

В этом режиме Cursor идёт нам навстречу — уточняет детали, пополняет контекст тем, что ему понадобится для реализации. Вопросы правильные, но на половину из них он мог бы найти ответ, если бы применил MCP.

65f39ce5262cc5f896f81683c45ea66d

В режиме агента проблем с MCP нет. Cursor реально читает фрейм выбранный нами в Figma, соотносит с ресурсами проекта и, в целом, делает правильные шаги.

e5703b1c3c50ce684edfd649a7539b13

Просто магия какая-то.

Cursor Senior

А вот тут ИИ пасует. Задачи с высокой неопределенностью — это территория, где нужны опыт, интуиция и глубокое понимание не только кодовой базы, но и бизнес-логики.

Когда мы попросим Cursor «спроектировать архитектуру нового модуля», он, конечно, что-то предложит. Скорее всего, стандартный VIPER, MVVM или другой популярный паттерн. Но он не учтёт нюансы проекта: как этот модуль будет взаимодействовать с легаси-кодом, какие требования к производительности, как это вписывается в общую стратегию развития продукта.

В задачах с высокой неопределенностью Cursor начинает «выдумывать» или «галлюцинировать». Он может предложить элегантное, но совершенно не подходящее ситуации решение. А попытки направить его в нужное русло приводят к тому, что мы тратим больше времени на объяснение контекста и исправление его ошибок, чем если бы делали все с нуля сами. 

Он не может декомпозировать сложную бизнес-задачу, потому что не понимает бизнес. Ну или мы не можем дать ему достаточно контекста. Он не может выбрать технологию, взвесив все «за» и «против» на горизонте нескольких лет.

Профит

На этом уровне экономии времени нет. Наоборот, можно потратить кучу времени, пытаясь «воспитать» ИИ, или, что хуже, получить неправильное архитектурное решение, которое создаст проблемы в будущем.

Что там с грейдом

Cursor — это мощный инструмент, который повышает грейд самого разработчика.

  • Он делает из джунаразработчика более уверенного миддл-минус, потому что автоматизирует рутину и помогает писать тесты.

  • Он делает из миддл-разработчика более продуктивного миддл-плюс — берёт на себя реализацию хорошо спланированных задач.

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

Cursor — это не автопилот, это, скорее, второй пилот-помощник. Он отлично справляется с навигацией по проложенному маршруту, но прокладывать маршрут, особенно в условиях шторма, должен опытный капитан. 

Поэтому ответ на главный вопрос: у Cursor нет грейда. Он — персональный ассистент, эффективность которого зависит от того, кто и как им управляет и как ставит задачи.

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

Источник: habr.com

✅ Найденные теги: новости, Оценка

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых