Строка или пул-реквест: честный мануал по выбору между автодополнением и ИИ-агентом на одном реальном кейсе
Разбираем сквозной пример — от новой колонки в БД до деплоя. Показываем, где предсказуемая строка Copilot спасает время, а агент экономит часы ценой вашего контроля.
Пятница, 16:40. Менеджер бросает задачу: «Добавь поле is_premium в юзеров, обнови API создания профиля, поправь фронтенд и напиши миграции». Знакомый триггер для любого разработчика. Сегодня мы не будем спорить о нейросетях вообще. Мы возьмём этот один конкретный эпик и пройдем его двумя путями: через строчного помощника (автодополнение) и через полноценного ИИ-агента. Автодополнение (строчный помощник) — это когда вы печатаете код, а редактор сам предлагает продолжение строки или функции, опираясь на контекст пары экранов выше и ниже курсора. ИИ-агент — это автономная система, которой вы ставите цель текстом, а она сама делит её на шаги, пишет файлы, запускает тесты и собирает результат в пул-реквест (запрос на слияние ваших изменений с основной веткой кода).
Шаг 1. Оценка масштаба: почему одна подсказка здесь умрет, а агент выживет
Открываем бэк-энд. Чтобы добавить одну колонку, нужно обновить модель данных, миграцию базы, сериализатор, эндпоинт (точку входа в API), права доступа и контракты типов. Если включить только автодополнение, оно честно допишет за вас сигнатуры функций и типизацию поля User.is_premium: bool. Ровно до того момента, пока вам не придется менять логику бизнес-правил сразу в пяти файлах. Подсказка закончится посреди файла, потому что ей физически неоткуда взять план изменения всей архитектуры. Агент же первым делом прочитает весь репозиторий, построит граф зависимостей (кто на кого ссылается) и выдаст пошаговый план: миграция -> откат -> обновление моделей -> новые тесты -> фиксы контрактов. Он берет на себя скучную координацию, которую человек обычно держит в голове на стикерах. Как проверить у себя прямо сейчас: возьмите любую свою закрытую задачу из Jira за прошлый месяц. Посчитайте количество измененных файлов. Если их больше трех и они лежат в разных папках (например, /db, /api, /frontend) — вашей следующей задаче нужен агент. Если меняется ровно один файл — оставайтесь в режиме строчных подсказок.
Шаг 2. Внутри редактора: скорость без сюрпризов против магии черного ящика
Сажаем задачу в работу. В первом сценарии открываем models.py. Печатаем def create_user( и получаем готовое тело функции с валидаторами. Это работает со скоростью мысли. CAR (показатель принятия кода — процент предложенных подсказок, которые программист оставил в проекте) для таких инструментов достигает 42,5%, потому что контроль остается полностью у вас: вы видите каждую букву до нажатия Tab. Никаких скрытых импортов, никакой внезапной смены библиотеки HTTP-клиента. Вы просто печатаете быстрее. Во втором сценарии мы пишем агенту промп (текстовую инструкцию): «Сделай фичу is_premium, сохрани обратную совместимость, добавь юнит-тесты с покрытием 80%». Окно редактора гаснет, открывается терминал. Через десять минут прилетает ссылка на пул-реквест. Внутри — пять новых файлов, рефакторинг старого сервиса авторизации, линтеры (программы для проверки стиля кода) зеленые, покрытие тестами действительно 80%. Но вместе с этим там могут быть декоративные тесты (которые проверяют лишь наличие функции, но не её логику), лишние импорты numpy ради одной математической константы и слишком широкая миграция БД, которая на проде будет висеть полчаса. Агент оптимизирует не ваш код, а свое прохождение чек-листа. Как проверить у себя: прогоните оба инструмента на одинаковом куске кода в 20 строк. Замерьте время от открытия файла до рабочего коммита. Затем посчитайте количество правок, которые пришлось внести вручную после работы агента. Если правок больше десяти — границы задачи были заданы слишком широко.
Шаг 3. Ревью и мерж: цена удобства и правила красной черты
Автодополнение приносит готовый кусок. Вы пробегаете его глазами за тридцать секунд, смотрите на дифф (разницу между старым и новым кодом) и нажимаете Merge. Ошибка стоит секунды отката. Результат агента нужно читать как полноценный аудит. Тесты могут проходить, но падать на граничных значениях времени ожидания. Миграция может идеально работать на локальной SQLite, но упереться в блокировку таблиц на PostgreSQL в облаке. Импорты могут утянуть тяжелую библиотеку туда, где нужна экономия каждого мегабайта памяти. Главное правило красной черты перед мержем: если агент коснулся схемы данных или публичных контрактов API, ручной ревью обязателен минимум от двух синьоров. Никакой автоматизации слепого смерживания. Агент дает структуру, но ответственность за архитектурные решения всегда остается человеческой. Чек-лист стоп/го для ревьюера: — Есть ли скрипт даун-грейда (отката) миграции? — Не сломались ли существующие мок-тесты (заглушки внешних сервисов)? — Совпадает ли фактическое покрытие тестами с заявленным в отчете? — Нет ли лишних прав доступа в новом эндпоинте?
Шаг 4. Кому что брать под эту конкретную ситуацию
Возвращаемся к нашей команде и пятничной задаче. Фича-тимам, работающим в потоке быстрого фидбека (правки макетов каждые два часа, горящие баги в чате), автодополнение даст большую суммарную скорость. Оно не ломает контекст: разработчик остается внутри одного файла, не переключаясь на ожидание сборки чужого пул-реквеста. Одиночным разработчикам и небольшим продуктовым командам лучше всего работает микс: днем автодополнение закрывает рутину «здесь и сейчас», а на ночь агенту ставится большая задача вроде нашего эпика is_premium с жестким ТЗ, отдельной веткой и критериями приемки. Агентству и интегратору, живущему на потоковой рутине (CRUD-интерфейсы, онбординг клиентов, переезд версий легаси-систем), жизненно необходим агент, но только прикрученный к жесткому корпоративному чек-листу приёмки. Без него агент начнет генерировать технический долг (накопленные проблемы в коде) промышленными масштабами.
Что сделать завтра утром: 1. Откройте свой текущий спринт и вытащите одну задачу, где меняется более трех файлов. 2. Напишите для неё текстовое ТЗ объемом ровно в один абзац: вход, выход, ограничения безопасности, критерии успеха. 3. Создайте отдельную ветку git switch -c feature/is-premium. 4. Запустите агента строго на этой ветке с лимитом в 50 долларов бюджета и запретом трогать конфиги CI/CD. 5. Пока он шуршит, закройте три мелкие задачи руками с включенным автодополнением. 6. Когда придет уведомление о пул-реквесте, отложите кофе и читайте дифф глазами самого параноидального ревьюера своей команды. 7. Перед мержем обязательно выполните миграцию на копии продовой базы данных.
По вопросам сотрудничества пишите @CeBers_dev