Привет, на связи Рома Миронов из Авито. Я бывший — хотя бывших не бывает — фронтендер, а сейчас тим- и техлид. Ковыряю AI и больше ничем не занимаюсь — кроме команды, конечно :) В этой статье расскажу, почему фронтенд пока не умер, какие задачи уже можно отдавать агентам, где они красиво ошибаются и почему сначала от AI становится больнее, а не легче.

Нет, фронтенд не умер. Умирает часть ручной рутины

Начну с главного: петь панихиды рано. Фронтенд просто трансформируется. Раньше ценность была в том, чтобы быстро и аккуратно написать много кода руками. Мы брали задачи на спринт и писали код. Теперь от нас требуется правильно поставить задачу, дать агенту необходимый контекст и взять ответственность за результат.

Я уже во многом так и работаю. Сам код пишу редко: больше слежу за тем, что делает агент, направляю его и проверяю. Нравится ли мне это — не знаю. Но пока выглядит прикольно.

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

Вокруг Codex и Claude много шума: в X они то хоронят друг друга, то вместе чинят чей-нибудь monorepo. Но X — не то место, которому хочется безоговорочно доверять, поэтому посмотрим на цифры из настоящих исследований:

  • 90% разработчиков регулярно используют хотя бы один AI-инструмент на работе;

  • 74% используют специализированные AI-инструменты для разработки;

  • 72% из попробовавших эти инструменты используют их каждый день;

  • 69% пользователей AI-агентов видят прирост эффективности;

  • по оценке опрошенных разработчиков, 42% кода, который они коммитят, сгенерировано либо существенно дополнено AI (AI-generated или AI-assisted).

Одновременно сохраняется большой разрыв между использованием и доверием: 96% разработчиков не готовы полностью доверять функциональной корректности сгенерированного кода. И при этом только 48% всегда проверяют AI-generated код перед коммитом.

(Я знаю, вы хотите фактчекнуть! Источники: JetBrains Research, Sonar и Stack Overflow. Возможно, данные уже несколько устарели, так что я бы сильно увеличил каждый процент.)

DORA — исследовательская программа Google Cloud — описывает AI как то, что усиливает существующую инженерную систему: сильные практики ускоряются, но хаос — тоже.

Вопроса, пользоваться AI или нет, уже нет на повестке. Актуальный вопрос — как не потерять в качестве, когда объем сгенерированного кода растет.

Тут еще больше контента

Почему фронтенд попал под первую волну AI-изации

По моему опыту, с AI проще работать там, где есть короткая обратная связь. Фронтенд для этого подходит очень хорошо:

  1. результат сразу виден в браузере;

  2. есть компонентная модель;

  3. повторяются знакомые UI-паттерны;

  4. можно использовать скриншоты и Storybook;

  5. локальная обратная связь обычно быстрая;

  6. тесты, type-check и линтеры дают дешевую проверку.

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

В контексте Авито сделать компонент — совсем не то же самое, что написать JSX. Агенту приходится учитывать массу вводных:

  • дизайн-систему;

  • bundle-check (проверка размера бандла) и check-deps (проверка валидности зависимостей);

  • аналитику и эксперименты;

  • сервисы и пакеты;

  • поисковую оптимизацию, производительность и доступность;

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

Надо не просто сверстать, а правильно реализовать в контексте Авито. Сейчас я спокойно использую AI для тестов, Storybook, разбора легаси, рефакторинга, миграций, подготовки к ревью и еще множества задачек.

Два кейса: расследование 500 и 38 PR

Кейс №1. Как агент расследовал 500 на выдаче

Недавно один из микрофронтендов на выдаче начал выдавать ошибку 500. Sentry зафиксировал падение на preparedItem.images.length с категорией CATEGORY_WIDGET. Код был не мой, причина была непонятна.

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

Агент прошелся по релизам, виджетам и контрактам данных, открыл браузер, посмотрел инфомодель, A/B-тесты, ботов и разные платформы (бэкенд, фронтенд). После тонны потраченных токенов он в итоге сформулировал гипотезу: Googlebot с мобильным user agent начал ходить на desktop, из-за чего для него начал выдаваться невалидный контент с бэкенда.

Барабанная дробь — гипотеза оказалась правильной.

Я почти полностью отдал AI дебаг этого инцидента. Он потратил много токенов в xHigh-режиме, но собрал факты, прошел по незнакомому коду и остался в нужном контексте. Когда я вернулся (через 30 минут), у меня уже было с чем идти к нужным людям.

Кейс №2. PR для удаления заметок

Здесь функционал был на выдаче, в избранном и на карточке объявления, плюс существовал бэкенд-сервис, который отдавал заметки. Я спросил коллег, сколько pull requests понадобится, чтобы убрать отображение заметок. Ответы были: шесть, десять. А правильно — 38.

Фрагмент списка PR
Фрагмент списка PR

Один из PR на карточке потянул еще около 30 изменений в разных сервисах из-за сгенерированного контракта карточки объявления. Вручную делать это мне совсем не хотелось, поэтому я отдал задачу агенту. Он собрал все PR, довел изменения до выкладки и закончил задачу (мерджил и выкатывал сам агент).

Наверное, это был какой-то рекорд Авито по количеству PR на одну фронтовую — а может, и не только — задачу. Но важнее другое: агент может произвести огромный объем изменений за очень короткое время.

Жми сюда!

Недостатки AI и мой подход

Меня пугает не то, что AI пишет плохой код. Пугает количество кода, которое он выдает за короткое время.

Скорость умножает не только пользу, но и ошибки. Типовые фейлы уже знакомы:

  • выдуманные API;

  • лишние абстракции над другими лишними абстракциями;

  • поверхностные тесты, которые ничего не проверяют;

  • «красивый» diff, который делает не то, что хотелось;

  • и много-много другого :)

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

По мере распространения AI количество PR и объем кода на ревью будут драматически расти. Значит, нам придется перестраивать процессы и работать по-другому.

У меня агент работает не сам по себе, а внутри заранее описанной среды. Конфиг состоит из нескольких уровней:

Как описать среду для AI, чтобы он меньше ошибался
Как описать среду для AI, чтобы он меньше ошибался

Если агент ошибается в повторяющейся вещи, я прошу записать правильный вариант в правила и больше не повторять ошибку.

При этом важно не переусердствовать. Чем больше правил, skills и MCP попадает в контекст, тем больше модель знает лишнего. К тому же токены расходуются быстрее. Для фронтенд-задачи не всегда нужны знания о бэкенде. Избыточный контекст может мешать.

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

Я генерирую планы не только в Markdown, но и в HTML. Когда это полезно, агент добавляет скриншоты, рисует состояние «как сейчас» и «как будет», показывает схемы и изменения.

Пример отрисовки «как сейчас» и «как будет»
Пример отрисовки «как сейчас» и «как будет»

Так мне проще понять, что именно он собирается делать, потому что визуальная информация воспринимается человеком проще.

Дальше процесс выглядит так:

  1. Беру Jira-задачу, фиксирую цель и границы.

  2. Передаю агенту контекст, ссылки, файлы и ограничения.

  3. Прошу написать план — сначала ход решения, без кода.

  4. Провожу ревью плана: оцениваю риски, убираю лишнее и уточняю недосказанное.

  5. Указываю выполнять задачу небольшими проверяемыми шагами.

  6. Снова провожу ревью результата и повторяю цикл, пока меня не устроит.

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

Практический совет

Не пишите в промте «Работай как senior-разработчик». Такая формулировка сама по себе ничего не дает. Лучше явно описать задачу, ограничения и способ проверки результата.

Можно ли поручить агенту ревью кода другого агента? Можно, если ответственность всё равно остается у человека. Сейчас агенты чаще всего плохо ревьюят, особенно сгенерированный код. Важно не попасть в ситуацию, где один агент написал код, второй формально подтвердил корректность, а человек вообще не понимает, что попало в PR и мерджит его.

Как дела с AI в Авито в целом?

В Авито уже есть MCP, skills и комьюнити вокруг AI. Но одну и ту же технологию можно одновременно считать зрелой, сырой и спорной — все зависит от того, где ее применять.

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

При этом я не хочу превращать каждую маленькую задачу в систему из десяти подагентов, которые рассматривают один PR с разных сторон. Если в CSS поменялась одна строка, огромный оркестратор может оказаться сложнее самой задачи.

Кликни здесь и узнаешь

Почему сначала становится больнее

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

Я смотрю на это как на J-кривую. Сначала мы вкладываем время в обучение и замедляем обычную разработку. Потом появляется налог на проверку: мы учимся понимать, где AI полезен, а где нет. Следующий этап — адаптация пайплайна и собственных процессов. Только после этого можно выйти в заметный рост.

Кривая освоения AI
Кривая освоения AI

В опросе Авито о том, на каком этапе, как считает сам сотрудник, он находится, большинство голосов пришлось именно на налог на проверку:

Освоение AI требует времени — как выход на новую работу или изучение незнакомого фреймворка. Сначала всегда становится медленнее.

Итого: что ускоряется, а что может ухудшиться

Мне все еще хочется писать код самому. Но у меня был пет-проект, в котором я примерно месяц делал админку, — агент потом сделал то же самое за день. Возникает логичный вопрос: зачем мне тратить месяц, если тот же результат можно получить быстрее?

Что AI чаще улучшает:

  • первый черновик;

  • прототип;

  • тесты и фикстуры;

  • миграции;

  • онбординг в код.

А это все, что связано со скоростью.

Но одновременно могут ухудшиться:

  • объем кода на ревью;

  • нагрузка на ревьюера;

  • количество переделок;

  • качество тестов;

  • поддержка.

AI уже полезен там, где есть хороший контекст и дешевая проверка. Он может расследовать инциденты, проходиться по незнакомому коду, делать миграции, писать тесты и собирать десятки связанных PR. Но та же скорость создает новый расход: растет объем ревью, количество переделок и риск уверенно решить не ту задачу. То есть места, где необходимо следить за качеством.

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

И самая важная мысль: за весь сгенерированный через AI код несет ответственность инженер, который этим управлял.

Фронтендеры, где находитесь вы на J-кривой освоения AI? Обучение, налог на проверку, адаптация пайплайна или уже экспоненциальный рост? Какие задачи уже отдаете агентам, а какие пока оставляете себе? Делитесь опытом в комментариях!


Кстати, если вам интересна работа в бигтехе —  Хабр совместно с ЭКОПСИ проводит большое исследование IT-брендов работодателей. В прошлом году в нём поучаствовали 34 000 специалистов. Если у вас есть опыт — он точно будет учтён

Комментарии (17)


  1. Apoheliy
    04.08.2026 17:59

    за весь сгенерированный через AI код несет ответственность инженер, который этим управлял

    Вот эту мысль под разными соусами в разных статьях читаю по пять-десять-сто раз.

    И у меня всегда вопрос: а как за всё это отвечать?

    Когда пишешь свой проект (хобби и т.д.), то всё довольно просто: проект твой, косяки стоят почти ничто.

    Когда ИИ занимается причёсыванием кода, написанием тестов: это тоже как-бы почти понятно. Исходный код писал человек, ИИ занимается "улучшайзингом".

    Переходим к боевому коду: Как нести ответственность? Если делать ревью по-правильному, то процесс может быть дольше, чем с кожаными: люди ленивы, лишнее менять не будут, пытаться условно-всё переписать - тоже желающих мало. Поэтому люди сделают максимально точечно. А ИИ? - Там всё цветёт буйно.

    Делать ревью на лишь-бы-пронесло - ну это как на бирже торговать: один раз повезло, два. А дальше не всё так радужно.

    К чему это всё?:

    Такой подход с ИИ напоминает "дикое программирование" из условных 90-х:
    Давай, давай, делай быстрее!!
    На ломаной винде!
    На ломаной студии!
    И заказчику поставим всё ломаное! Потому что в соседнем офисе Вася делает дешевле и быстрее!

    Не будешь успевать? Это плохо. Это очень плохо. Это настолько плохо, что подумай: ну, зачем тебе не успевать? Лучше успеть!

    Результат сего действа многие помнят. Да, сейчас винда не ломаная. За это не наезжают.
    Но есть другое: где-то утекли данные; кто-то получил скидку в 100%; вендинговый автомат сам заказал вольфрамовый кубик за овербабло, потом это продал за бесценок, потому что никому не нужно. Сильно лучше?

    Ну ладно в 90-х: выживали как могли, на такой "дикости" коммерсы немного заработали и потом всё спустили.

    А сейчас-то зачем такая беготня? Потому что нужно [... кому-то отработать зарплату и ...] перерисовать фон приложения на совсем другой, "найденный путём сложной процедуры в двадцать этапов"? Форму кнопки поменять?

    В общем, какая-то беготня за светлое будущее. Откуда только столько задач взялось?


    1. Dhwtj
      04.08.2026 17:59

      И у меня всегда вопрос: а как за всё это отвечать?

      Дали пистолет, дальше как хочешь так и вертись ©

      Откуда только столько задач взялось?

      Далее небольшое конкурентное преимущество умноженное на лёгкость масштабирования даёт постоянную гонку с нулевой суммой


    1. z00m
      04.08.2026 17:59

      Откуда только столько задач взялось?

      Нам шеф на прошлой работе сказал: "У кого на проекте пустой беклог - дайте знать. Я вам нагенерю задач в Жире через ИИ". Стоило ли говорить, что задачи эти никто из продуктов не ревьюил, когда передавал в разработку. Потом эти задачи никто из разрабов не смотрел, потому что таску из Жиры подсасывал агент в Клоде и сам по ней составлял план, разрабатывал функционал, создавал ПР, сам же ревьюил, отписывал в Жиру фидбек по задаче, где агент Шефа его ревьюил и подтверждал. Потом этот функционал так же автоматом мержился и улетал в прод. Всех всё устраивало... кроме команды Pager Duty, которые с красными, от недосыпа, глазами проклинали добрым словом всю эту ии-разработку.


      1. mk2
        04.08.2026 17:59

        Остаётся один вопрос - почему на "прошлой"? Неужели вы и состояли в команде Pager Duty? :-)


        1. z00m
          04.08.2026 17:59

          Куда смешнее) Наш шеф настолько поверил в себя и в ИИ, что решил избавиться от разработчиков в цепочке Задача -> Реализация -> Тестирование -> Прод. Потом он ещё и решил избавиться и от команды QA, раз ИИ и так классно тестирует… Это была феерическая история из которой я вынес главную мысль: “основные носители информации о проекте не продуктологи, и даже не разработчики, а QA”.


          1. Tenutes Автор
            04.08.2026 17:59

            Ошибся, но где... :)


    1. funca
      04.08.2026 17:59

      Переходим к боевому коду: Как нести ответственность?

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


    1. Tenutes Автор
      04.08.2026 17:59

      Попробую высказать свое мнение на каждый пункт:
      1. а как за всё это отвечать - да так же, как и раньше. Алерты, мониторинги, инфраструктура вокруг всего этого => чтобы было проще этим всем управлять и следить
      2. Как нести ответственность - аналогичный ответ. Ничего не меняется, увеличивается лишь объем написанного кода, за который надо нести ответственность. Но под это высвобождается больше времени на эту ответственность, т.к. писать код теперь - довольно дешево.
      3. А сейчас-то зачем такая беготня? Откуда только столько задач взялось? Задач всегда было много (беклоги-то не пустые, да?). И раз появилась возможность доносить до юзера что-то (эти задачи) быстрее, то почему нет? Кмк, это теперь новая реальность (после sublime/notepad => IDE => VS Code => Автокомплит кода => Чаты с нейронками => Агенты => ....?), с которой нужно учиться жить и просто, скорее всего, не будет.

      Тут можно много говорить о том, как теперь живется и как это выглядит и к чему может привести, а можно делать свою жизнь лучше во всем этом процессе, чем я и стараюсь заниматься



  1. Amareis
    04.08.2026 17:59

    Фронтенд не умер, его убило


    1. Wesha
      04.08.2026 17:59

      Его погребло под слоем говнонейрокода.


  1. arantar
    04.08.2026 17:59

    Вы лучше попросите ИИ сгенерировать себе API нормальное


  1. vnoleg
    04.08.2026 17:59

    Я генерирую планы не только в Markdown, но и в HTML

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


    1. Tenutes Автор
      04.08.2026 17:59

      У меня эта тема просто расписана: если для плана задачи необходимы схемы (любой визуал) => делай html


  1. SabMakc
    04.08.2026 17:59

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

    Интересно, как это совместимо с экспоненциальным ростом?


    1. Tenutes Автор
      04.08.2026 17:59

      Считаю, что полностью совместимо, т.к. ответственность можно нести по-разному. Ну и экспоненциальный рост тут скорее для объяснения "направления" - что все начинает двигаться быстрее - а не показать функции от времени).

      Объясню про совмещение: Сейчас стало довольно просто писать те тулзы, которые помогут тебе как инженеру проверять код (под кодом подразумеваю все, что было написано и крутится как в stage, так и prod) - инфраструктура вокруг изменений (линтеры, чекеры, ci, и прочее, что можно надумать) и те "функции", которые помогут быстрее проверять тебе гипотезы в процесе решение какой-либо задачи (например, с перфом - можно быстро попросить написать хелпер у Агента, который поможет оддебажить влияние анимаций, теней, транзишенов на страницу). Этими тулзами в прошлом (без ИИ) ты бы навряд ли стал заниматься ,ибо убил бы на них тучу времени, вместо того, чтоб заниматься задачей


      1. SabMakc
        04.08.2026 17:59

        То, что ИИ хорош в MVP / прототипах / тулзах “для себя” это да.

        Но никакой линтер/чекер и прочее не заставит ИИ писать так, что не нужно проверять результат. ИИ гораздо лучше пишет, чем год назад - спору нет. Но до “принял не глядя” еще очень далеко.

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

        Так что экспоненциально можно ускорить производительность за счет ИИ. Но ответственность не будет расти столь же быстро. Для ответственности нужен контроль результатов. Для контроля нужно ревью. Вдумчивое ревью зачастую сложнее, чем сам процесс кодинга. И тут экспоненциальный рост ломается. Никакие тулзы “для себя” этот разрыв не закроют.


  1. funca
    04.08.2026 17:59

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

    Для меня сейчас основной проблемой стали эстимации.

    Например, многие замечают, что модели периодически резко тупеют, (как правило перед релизами новых версий).

    У плагинов есть версии, но нет нормального управления этими версиями. Обновление всегда происходит до последней. Скиллы обновляются и периодически сильно меняют свое поведение - не в лучшую сторону. Если не выключен автоапдейт, можно долго разбираться в проблемах. То же самое касается MCP на сторонних сервисах.

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