惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News and Events Feed by Topic
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
T
Threat Research - Cisco Blogs
Cloudbric
Cloudbric
Recent Commits to openclaw:main
Recent Commits to openclaw:main
I
Intezer
Attack and Defense Labs
Attack and Defense Labs
P
Privacy International News Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
Lohrmann on Cybersecurity
C
Cybersecurity and Infrastructure Security Agency CISA
V2EX - 技术
V2EX - 技术
AWS News Blog
AWS News Blog
O
OpenAI News
L
LINUX DO - 最新话题
N
News | PayPal Newsroom
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Latest news
Latest news
D
Darknet – Hacking Tools, Hacker News & Cyber Security
A
Arctic Wolf
Spread Privacy
Spread Privacy
G
GRAHAM CLULEY
T
Tor Project blog
博客园_首页
Know Your Adversary
Know Your Adversary
有赞技术团队
有赞技术团队
S
Secure Thoughts
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
T
Tailwind CSS Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
V
Visual Studio Blog
J
Java Code Geeks
Cisco Talos Blog
Cisco Talos Blog
Schneier on Security
Schneier on Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Security Affairs
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
宝玉的分享
宝玉的分享
量子位
Last Week in AI
Last Week in AI
月光博客
月光博客
罗磊的独立博客
S
SegmentFault 最新的问题

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром T-TOPS: Как распутать гордиев узел проекта после выхода в прод (меч не понадобится) Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Упрощаем работу с рутиной или как стать Гендальфом Белым
2026-04-16 · via Все публикации подряд на Хабре

Предисловие

Надеюсь, все смотрели «Властелин колец»: там был харизматичный волшебник Гэндальф. В начале фильма (и книги) к его имени добавляли «Серый», а затем его стали величать «Белым». Так вот, это обозначение его ранга в иерархии магов. Можно уже открыть форточку для проветривания. Чтобы поменять статус, требуется преодолеть нечеловеческие испытания и обрести просветление. Так и в IT: пройдя все невзгоды, ты становишься сеньором. А сегодня я постараюсь облегчить вам этот путь.

Конец эпохи «Человек-Бэтмен»

Помните то время, когда фронтендер был эдаким универсальным солдатом? Сам сверстал пиксель-перфект, сам написал редьюсеры на Redux, сам починил конфиг Webpack, а ночью во сне продолжал верстать письма для почтового клиента Outlook 2007? У меня для вас новость: эта эпоха стремительно уходит в прошлое.

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

Сразу расставим точки над «i»: это не история о том, как роботы отобрали у нас работу. Это история о том, как мы перестаем быть теми, кто печатает код, и становимся теми, кто принимает решения. Мы пересаживаемся с весла на капитанский мостик. И это, скажу я вам, чертовски удобно.

Кто есть кто в этом зоопарке? (Ликбез для тех, кто хочет блеснуть на созвоне)

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

Академическая база (за 30 секунд, не уснете):

С точки зрения архитектуры, современные ИИ делятся по двум главным осям:

  1. По архитектуре «мозга»:

    • Трансформеры (Transformers): Это основа всего текстового и кодового волшебства (GPT, Claude, Gemini). Их секретный соус — механизм внимания (Attention). В отличие от старых моделей, которые читали код как школьник стих — слово за словом и забывая начало к концу, Трансформер видит весь ваш useEffect на 500 строк целиком. Он понимает, что стейт, объявленный на 10-й строке, используется в разметке на 450-й. Именно поэтому они так хороши в рефакторинге и поиске багов.

    • Диффузионные модели (Diffusion Models): Это художники (Midjourney, Stable Diffusion). Они работают как скульпторы, убирающие лишний мрамор. Только вместо мрамора — цифровой шум. Они берут хаос и постепенно «проявляют» из него иконку, кнопку или целый макет. Полезно, когда нужно сгенерить заглушку для блога.

    • CNN / RNN: Это динозавры, слава Богу, почти вымершие в потребительском сегменте. RNN страдали склерозом и забывали, что было в начале длинного промпта. Забудьте о них, как о jQuery в 2026 году.

  2. По способностям восприятия (Модальность):

    • Unimodal: Работает только с текстом (ранние версии чат-ботов).

    • Multimodal: Понимает текст + картинку + код + аудио (GPT-4o, Claude 3.5/3.7). Вот это наше всё. Мы можем скинуть скриншот кривого макета из Figma и сказать: «Сделай мне такой же компонент на Tailwind». И он сделает. Потому что он видит.

Группировка для фронтендера (Перевод с академического на наш, кухонный язык):

Теперь забудем теорию и посмотрим на полку с инструментами, которыми мы пользуемся каждый день.

Погоняло в окопах

Кто это? (Примеры)

Фронтенд-роль

Оракул в облаке

ChatGPT, Claude.ai, Gemini

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

Шёпот в ухо (Автодополнение)

GitHub Copilot, Codeium, Cursor Tab

Вёрсткий печатник-стахановец. Знает твой проект до последней строчки. 70% бойлерплейта (импорты, объявления useState, повторяющиеся className) стучит по клавишам он.

Генератор пикселей

v0.dev, Builder.io, Screenshot-to-code

Верстальщик-стажер с бешеной скоростью. Из картинки или текста делает компонент на React/Vue. Быстро, но иногда такой кривой, что проще переделать самому. Но для MVP — идеально.

Груз ответственности за скуку (или «Совещание по поводу сдвига пикселя в 18:30»)

Фронтенд — уникальная профессия. Мы одновременно художники, создающие то, что видит миллион пользователей, и археологи, раскапывающие артефакты в папке node_modules. И часто бывает так: ты пришел на работу с горящими глазами, чтобы запилить крутую анимацию на Canvas или разобраться с Web Workers, а в итоге...

...тебя съедает болото рутины:

  1. Проклятие прокидывания пропсов (Prop Drilling). Это как быть почтальоном в небоскребе без лифта. Пропс пришел сверху, и его надо протащить через 5 абсолютно пустых и бессмысленных компонентов-оберток до какой-то несчастной кнопки в подвале интерфейса. Да, есть сторы и Context API, но легаси-код, как мы знаем, бессмертен.

  2. Бой с тенью сборщика. Ты просто хочешь импортировать обычный SVG файл. А сборщик (Webpack/Vite) отвечает тебе как капризная жена: «Неееет, дорогой, сначала установи vite-plugin-svgr, потом создай custom.d.ts, потом трижды перезапусти дев-сервер, и может быть, я покажу тебе твою иконку. А если нет — я упаду с ошибкой, в которой 300 строк красного текста, а суть в одной опечатке в пути».

  3. Работа машинистки-стенографистки. Писать 35-й по счету const [value, setValue] = useState('') и 27-й обработчик const handleChange = (e) => {...}. Пальцы устают не от сложной бизнес-логики, а от монотонного стука по одним и тем же клавишам. Ты чувствуешь себя не творцом, а биороботом по перекладыванию JSON'ов.

  4. Экзистенциальный ужас нейминга. Как назвать функцию, которая проверяет, что массив не пустой и при этом не null или undefined? isArrayNotEmptyAndNotNil? hasValidItemsAndExists? На эти споры с самим собой уходит больше ментальной энергии, чем на написание самой проверки в одну строчку.

И вот тут в дверь стучится Искусственный Интеллект, берет у тебя из рук клавиатуру и говорит: «Слушай, отдохни, сходи за кофе. Я тут постучу пока по кнопкам, а ты потом проверишь, чтобы я не накосячил с margin и padding».

Генерация верстки (из картинки / промпта): Инструкция для ленивого перфекциониста

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

Сценарий №1. «Горе-дизайнер из WhatsApp».
Тебе скинули не ссылку на Figma, не Zeplin, а скриншот экрана. Кривой, обрезанный, сделанный на старом Android.

  • Твой ход: Выделяешь область скриншота (Win+Shift+S / Cmd+Shift+4).

  • Куда идти: Открываешь Claude.ai (на сегодняшний день он лучше всех считывает структуру интерфейсов с изображений).

  • Священный текст промпта: «Привет. На прикрепленной картинке форма логина. Сделай мне React компонент на TypeScript. Стили — Tailwind CSS. Темная тема. Обрати внимание: кнопка с градиентом как на скрине, в инпутах должны быть иконки слева. Вся верстка в одном файле. Поехали».

  • Итог: Ты получаешь 90% готового кода за 15 секунд. Остается только поправить «робо-стиль». Нейросети патологически любят ставить гигантские отступы p-8 там, где должен быть скромный p-4, и пихать rounded-full на всё, что видят. Но это лечится за минуту правок.

Сценарий №2. «Хочу как у них».
Увидел крутой компонент на Dribbble, Awwwards или на сайте конкурента. Руки чешутся повторить.

  • Инструмент: v0.dev от Vercel. Это буквально генератор фронтенда по промпту с упором на Tailwind и shadcn/ui.

  • Промпт: «Сделай навигационную панель: логотип слева, аватарка пользователя справа, по центру 4 ссылки (Главная, Услуги, Блог, Контакты). При скролле вниз панель должна становиться полупрозрачной с эффектом блюра и немного уменьшаться по высоте. Используй стек Next.js и shadcn/ui».

  • Юмор ситуации: v0 выдаст тебе компонент с CSS-правилами backdrop-filter: blur(12px) и transform: scale(0.98), о существовании которых ты благополучно забыл после прочтения спецификации W3C в 2021 году. Ты с умным видом пушишь это в репозиторий, а коллеги на код-ревью пишут: «Вася, респект, анимация огонь! Как делал?». А Вася скромно умалчивает, что просто хорошо общается с роботом.

Магия, которую не стыдно показать

Заменим скучные примеры на что-то реально хитрое.

Кейс: Drag-and-Drop без библиотек (потому что 30 кб в бандле — это святое).
Нам нужно сделать перетаскивание виджетов на дашборде. Тащить ради этого монстра react-beautiful-dnd не хочется. Хочется легкое, нативное решение на чистом React.

  • Что делаешь: Открываешь компонент в IDE, ставишь курсор и пишешь комментарий (Copilot или Cursor его тут же подхватят):
    // напиши кастомный хук useDraggable для React, который обрабатывает mouse events, вычисляет дельту смещения и возвращает стили для transform: translate3d. Без библиотек, чистый JS. Не забудь убрать слушатели при размонтировании.

  • Что делает ИИ (и тебе не надо это писать самому):

    1. Создает useRef для отслеживания координат.

    2. Правильно считает математику: clientX - initialMouseX.

    3. Самое важное — корректно описывает cleanup-функцию с removeEventListener, чтобы твой компонент не устраивал утечек памяти.

    4. Выдает готовый кусок кода, который тебе пришлось бы собирать по 3 разным статьям на Medium и одному ответу на StackOverflow 2014 года.

Решение проблем с билдом или кодом: Экзорцизм красных ошибок

Назовем этот блок, как он того заслуживает.

Раньше: Ты запускаешь npm run dev, терминал взрывается красным текстом. "Error: Cannot find module './SomeLegacyFile'...". Ты вздыхаешь, завариваешь кружку чая побольше и готовишься к 40 минутам серфинга по заброшенным веткам issues на GitHub, где ответом является одна фраза: "Пофиксите в следующем релизе (3 года назад)".

Сейчас (алгоритм экзорциста):

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

  2. Формулировка контекста. Идешь в ChatGPT/Claude и пишешь:
    «Я фронтендер. Стек: Vite + React + TypeScript. При запуске npm run dev получаю такую ошибку: [ВСТАВЛЯЕШЬ ВЕСЬ ЛОГ]. В чем корень проблемы и как это починить пошагово?»

  3. Результат. В 8 случаях из 10 нейросеть ткнет носом в несовместимость версий @types/node и Node.js, или скажет: «Чувак, у тебя в 12-й строке tsconfig.json слеш не в ту сторону в алиасе paths».

Бонус для тех, кто хочет не просто чинить, а понимать: можно попросить объяснить природу ошибки. «Почему Webpack ругается на fs в браузере?». Это как иметь под боком сеньора, которому не лень объяснять теорию.

Как выжить, когда бэкендер в отпуске (и выглядеть при этом богом SQL)

Самый страшный сон фронтендера: тебе нужно построить сложный график аналитики, а готового API нет. Либо бэкенд уехал в Тибет, либо ты делаешь админку на Next.js и у тебя прямой доступ к Supabase/PostgreSQL.

Инструкция по выживанию и имитации бурной деятельности:

  1. Осознание. Ты открываешь схему БД и видишь таблицы users, events, transactions. Тебе нужно посчитать количество регистраций по дням за последний месяц, причем если в какой-то день было 0 регистраций, день всё равно должен быть в выдаче с цифрой 0 (чтобы график в Recharts не был рваным).

  2. Диалог с ИИ-сисадмином. Пишешь промпт на чистом русском языке:
    «У меня есть таблица users с полем created_at (тип timestamp). Напиши запрос для PostgreSQL. Нужно посчитать количество пользователей, созданных за каждый день за последние 30 дней. В выборке должны быть ВСЕ дни (даже с нулями). Результат отсортируй по дате по возрастанию. Мне это нужно скормить в фронтовый график».

  3. Магия. ИИ генерирует тебе эльфийское заклинание — рекурсивный CTE (WITH RECURSIVE) с LEFT JOIN. Ты смотришь на этот код, понимаешь от силы половину слов, но копируешь его в await sql(...) внутри Server Action.

  4. Триумф. Данные приходят идеально ровные. Приезжает бэкендер из отпуска, смотрит в код и спрашивает: «Ого, ты SQL подтянул? Да еще и WITH RECURSIVE...». А ты с лицом Брэда Питта отвечаешь: «А чё там подтягивать-то? Делов на пять минут». (Внутри в этот момент играет победный марш, а благодарность Claude зашкаливает).

Тесты и Документация (Как откосить и получить похвалу за чистый код)

Часть 1. Документация (JSDoc и Storybook).
Никто не любит описывать пропсы. Особенно когда их 25 штук у сложной таблицы.

  • Инструкция:

    1. Установи плагин Mintlify в VSCode или открой проект в Cursor.

    2. Выделяешь глазами тип MyComponentProps.

    3. Жмешь Cmd/Ctrl + . -> Generate JSDoc.

    4. Вжух — и у каждого пропса есть описание. "@param data - Массив данных для таблицы. @param isLoading - Показывать скелетон". Ты не написал ни строчки текста, а на код-ревью тебя хвалят за документацию.

Часть 2. Тесты (Jest + React Testing Library).
Писать тесты — полезно. Писать их руками — скучно.

  • Инструкция:

    1. Открываешь файл LoginForm.tsx.

    2. В чат с Copilot пишешь: напиши юнит тесты для компонента LoginForm. Проверь рендер двух полей ввода и кнопки, проверь, что кнопка disabled если поля пустые, и проверь вызов функции onSubmit с правильными значениями при клике.

    3. Копируешь результат в LoginForm.test.tsx.

    4. Запускаешь. С первого раза тесты упадут (где-то селектор getByRole не тот, где-то act нужен). Но! Ты потратишь 3 минуты на правку селекторов, а не 20 минут на написание каркаса. Это как купить замороженную пиццу: основа готова, осталось добавить колбаски по вкусу.

Чего ИИ пока НЕ умеет (И не просите его об этом)

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

  1. Понимание контекста бизнеса. ИИ не знает, что вот этот маленький баг с отсутствием отступа у кнопки «Купить» на мобилке обрушит конверсию на 20% и приведет к разносу от продактов. Он просто видит код. Приоритизировать задачи и решать, что именно важно для бизнеса, — по-прежнему твоя работа.

  2. Визуальная эстетика уровня «Apple».
    Сгенерировать сетку из 4 карточек с тенями — это легко. Сделать так, чтобы интерфейс дышал, имел ритм, чтобы взгляд пользователя интуитивно скользил туда, куда нужно, — это всё еще магия, доступная только живому человеку с насмотренностью. ИИ генерирует шаблоны.

  3. Ответственность и софт-скиллы.
    ИИ не пойдет на митинг объяснять, почему вместо кнопки «Отправить» на проде внезапно нарисовалась гигантская кошка (спасибо кривому промпту). ИИ не напишет постмортем в Confluence. И уж точно не сможет сказать заказчику: «Нет, мы не будем делать всплывающее окно через 3 секунды после захода на сайт, потому что это бесит пользователей».

  4. Рефакторинг «говнокода столетней давности».
    Если у вас проект на Angular.js 1.5 с примесью jQuery и парой самописных скриптов на Prototype, ИИ предложит вам красивое, современное решение, которое с вероятностью 99% просто положит весь скоуп $digest и уронит приложение к чертям. Легаси нужно трогать только проверенными шаманскими бубнами и молитвами.

Ты дирижер, а не пианист

Подводя черту под этим парадом технологий, честно говоря, хочется выдохнуть. Искусственный интеллект во фронтенде сегодня — это как завести дома очень умного, но слегка безумного кота. Он может случайно нажать хвостом кнопку Deploy to Production, пока ты наливаешь чай (спасибо, что в Next.js есть защита от дурака). Но этот же кот ловит всех мышей в подвале (рутину) и греет тебе колени, пока ты думаешь над архитектурой нового модуля.

Мы вступаем в эру, где скорость принятия решений и качество промпта ценятся выше, чем слепая скорость печати (P. S. я всё ещё быстрее печатаю, чем Copilot генерирует длинные листинги, так что безработным не останусь).

ИИ не отберет у нас работу. Он отберет у нас самую нудную её часть — бесконечные марафоны по написанию handleChange и копанию в конфигах. А нам оставит самое интересное: споры о том, чей фреймворк лучше, UX-исследования и возможность смотреть на сгенерированный код с чувством легкого собственного превосходства.

И помните: если что-то сломалось, всегда можно сказать: «Это не я, это робот накосячил». Робот не обидится. Пока что.