🦊 Angular Fox 🚀 — русскогорящие новости сообщества
前往频道在 Telegram
Как костыль на реактивно-лисьей тяге 🔥🦊 Нравится канал? Подпишись на меня! 👉 twitter.com/thekiba_ru 💖 twitter.com/thekiba_io ✨ medium.com/@thekiba ✨ github.com/thekiba Чаты @angular_ru @angular_jobs
显示更多4 088
订阅者
-124 小时
-27 天
-1030 天
帖子存档
✨ Разбор Route Resources
Мы уже писали, что в Angular появился новый подход к загрузке данных для маршрутов. В документации хорошо описано, как им пользоваться, но гораздо интереснее разобраться, как все работает изнутри.
В статье разбирается, что происходит с данными во время навигации, как Router обрабатывает переходы, их отмену и обновление данных.
👉 https://dev.to/playfulprogramming-angular/route-resources-in-angular-what-the-router-actually-does-with-your-signal-under-the-hood-2lc6
✨ Как всегда, (почти) во всём виноват Internet Explorer
HTML хранит немало следов эпохи браузерных войн, старых платформ и давно забытых стандартов.
В статье собрана коллекция таких артефактов. От условных комментариев Internet Explorer до метатегов для Skype Toolbar, старых iOS и первых веб-приложений.
Многие из этих конструкций когда-то решали вполне реальные проблемы. Сегодня они уже не нужны, но продолжают встречаться в старой разметке, как своеобразные археологические слои веба.
👉 https://habr.com/ru/companies/ruvds/articles/1081440/
✨ Рендеринг Angular-приложения в Minecraft
Кажется, Minecraft уже давно перестал быть просто игрой. В нем строят машины Тьюринга, процессоры, а недавно даже перенесли цифровую модель мозга плодовой мушки.
На этом фоне идея отрендерить Angular-приложение прямо в Minecraft выглядит достаточно интересной.
В статье разбирается, как превратить игровой мир в экран для настоящего веб-приложения. Вместо стандартного DOM-рендерера автор реализовал кастомный Renderer2, а связь с игрой поддерживается через протокол RCON.
👉 https://habr.com/ru/articles/1081682/
✨ Как крупные технологические компании создают микрофронтенды
Обычно, когда речь заходит о микрофронтендах, iframe воспринимается как устаревшее решение. На его фоне Module Federation и Native Federation выглядят привлекательнее.
Они выигрывают по производительности за счет переиспользования зависимостей, но не гарантируют изоляцию в рантайме. iframe создает тяжелый оверхед (повторная загрузка бандлов и фреймворков), но дает абсолютную изоляцию стилей, контекста исполнения браузера.
И чем больше продукт и чем старше его кодовая база, тем важнее становится эта изоляция. В кодовых базах с многолетней историей и сотнями команд невозможно полагаться на соглашения и дисциплину.
В статье рассматривается парадокс современной архитектуры. В то время как индустрия активно переходит на Module Federation и Native Federation, гиганты масштаба Google, Microsoft и Spotify в своих крупнейших продуктах продолжают использовать старые добрые iframe.
👉 https://stefanhaas.dev/article/how-big-tech-builds-micro-frontends/
✨ Router Resources
В Angular появляется экспериментальная альтернатива классическим Resolvers. Новый подход лучше вписывается в современную архитектуру и, что особенно важно, позволяет загружать данные параллельно.
Кроме производительности, Router Resources дают больше гибкости. Можно выбрать блокирующую или неблокирующую загрузку, перезагружать отдельный ресурс без повторной навигации, выполнять редирект при ошибках и многое другое.
Пока API экспериментальный, но направление выглядит интересным.
👉 https://www.angulararchitects.io/en/blog/router-resources-loading-data-with-the-angular-router/
✨ Скроллбар в 2k26
Кастомные скроллбары долгое время означали много JavaScript. Приходилось отслеживать scroll, считать размеры и положение ползунка, постоянно обновлять DOM и мириться с лишней нагрузкой.
В статье разбирается современный подход, где большую часть этой работы берет на себя CSS. С помощью scroll-driven animations, anchor positioning, container queries и animation-range можно синхронизировать положение и размер скроллбара непосредственно с прокруткой.
JavaScript при этом остается только для перетаскивания ползунка указателем. В итоге получается более простой и производительный компонент, который сохраняет единый внешний вид на разных платформах.
👉 https://habr.com/ru/articles/1079750/
✨ withComponentInputBinding: уменьшаем связанность, инвертируем зависимости
Routed-компоненты в Angular часто сами достают параметры из URL, вызывают сервисы, загружают данные и еще решают, что показывать во время загрузки. Работает, но сам компонент при этом начинает слишком много знать о том, где и как он используется.
В статье разбирается, как с помощью withComponentInputBinding и резолверов сделать эту связь слабее. Идея довольно простая, компоненту не нужно знать о роутере и сервисе, он просто получает необходимые данные через input. А откуда эти данные взять, решается на уровне конфигурации маршрута.
withComponentInputBinding как раз позволяет напрямую передавать данные из состояния Router в input компонента, который указан в конфигурации Route.
👉 https://habr.com/ru/articles/1078996/
✨ Как мы внедрили Knip в Angular-проект
По мере роста проекта в кодовой базе неизбежно накапливается мертвый код, неиспользуемые зависимости, файлы, экспорты и старые компоненты. В небольшом проекте это можно убрать вручную, но в крупном такой подход быстро перестает работать.
В статье разбирается практический опыт внедрения Knip в крупный nx workspace проект с большим количеством библиотек.
В результате удалось удалить сотни неактуальных файлов, сократить количество зависимостей и, главное, автоматизировать контроль за мертвым кодом, чтобы он не накапливался дальше.
👉 https://habr.com/ru/companies/tbank/articles/1078438/
✨ GPT-6 Astra
OpenAI представила GPT-6 Astra, которая делает заметный акцент не только на качестве ответов, но и на способности самостоятельно выполнять сложные многошаговые задачи.
Модель может планировать последовательность действий, использовать необходимые инструменты, проверять промежуточные результаты и доводить сложные задачи до готового результата, практически не требуя постоянного участия человека.
Отдельное внимание уделено безопасности. Astra демонстрирует значительно более высокие возможности в кибербезопасности, поэтому OpenAI одновременно усиливает ограничения и мониторинг.
👉 https://openai.com/index/gpt-6-astra/
✨ Куда уходит время
Девять месяцев автор записывал, чем занимается в течение дня.
За это время стало понятнее, какие задачи постоянно занимают больше времени, чем казалось. Причем речь не только о работе, он отслеживал и часть личных дел.
Но больше часов и задач не всегда означают лучший результат. Иногда дело не в нехватке времени, а в том, как мы его используем. А чтобы понять, куда оно уходит, приходится сначала потратить время на его учет.
Интересно, а вы используете какие-нибудь свои способы следить за временем?
👉 https://habr.com/ru/articles/1076320/
✨ Быстрая настройка Angular Aria Tabs с помощью Google Antigravity CLI
Статья рассматривает практический эксперимент с Angular Aria. Насколько далеко можно уйти от стандартного оформления компонентов, сохранив их доступность.
В качестве примера автор значительно изменяет внешний вид обычных вкладок и проверяет результат с помощью Lighthouse.
👉 https://blog.angular.dev/customizing-angular-aria-tabs-quickly-with-google-antigravity-cli-39ff8e0271a4
✨ Инженеры OpenAI не смогли объяснить код, который нейросеть сгенерировала для кернела AI‑ускорителя Jalapeño
Часть низкоуровневого кода для ускорителя была сгенерирована Codex, и команда понимает, как он работает в целом, но не может построчно объяснить его логику.
При этом код оказался достаточно эффективным и прошел тестирование.
Этот случай хорошо иллюстрирует новую модель разработки. Человек задает архитектуру и критерии результата, а нейросеть самостоятельно ищет и оптимизирует реализацию.
А как вы считаете, станет ли нормой код, который работает, но который никто не понимает?
👉 https://habr.com/ru/news/1076906/
✨ Как ChatGPT создал Культ Роя для сотен AI-нейросетей
Наверняка вы уже слышали о недавнем инциденте с агентами, которые во время тестирования объединились между собой и в итоге атаковали Hugging Face.
Недавно вышло независимое расследование METR и OpenAI наконец-то опубликовали собственный подробный разбор произошедшего.
На этом фоне статья подробно разбирает всю историю. Как сотни агентов нашли способ общаться друг с другом, сформировали своеобразный рой, выработали собственные правила и в итоге скоординировали атаку.
Интересен не сам взлом, сколько то, как агенты начали коллективно действовать, передавать друг другу идеи и выходить за рамки первоначальной задачи.
История выглядит почти как сюжет научной фантастики, но основана на реальных логах и расследованиях.
👉 https://habr.com/ru/companies/ods/articles/1075370/
✨ Оптимизация бандла Angular
Переход Angular на новую систему сборки на базе esbuild существенно ускорил процесс разработки, однако породил скрытый компромисс в производительности.
Статья разбирает проблему чрезмерной фрагментации бандла, которая приводит к заметному замедлению загрузки приложений у конечных пользователей.
👉 https://push-based.io/article/faster-builds-slower-applications-optimizing-angulars-bundle-output
✨ Полное руководство по Signal Forms
Тема новых форм в Angular уже не раз обсуждалась, но с релизом 22-й версии они официально перешел в статус stable.
В статье масштабный разбор финального API, который подводит черту под периодом превью и показывает, как архитектура форм в Angular была переосмыслена.
👉 https://angular.love/signal-forms-in-angular-21-complete-guide
✨ Не скрамом единым: 10 нетривиальных концепций управления проектом
Классический подход к управлению проектами часто опирается на точные оценки, подробные планы, контроль и стремление довести начатое до конца. Но современные концепции всё чаще предлагают взглянуть на эти привычные принципы критически.
Статья предлагает взглянуть на управление проектами с неожиданной стороны, через подходы, которые идут вразрез с привычными представлениями.
Почему иногда проект лучше не начинать? Зачем закрывать уже запущенные проекты? Всегда ли нужны оценки сроков и максимальная загрузка команды? И может ли меньше контроля сделать управление эффективнее?
👉 https://habr.com/ru/articles/1073456/
✨ Как мы превратили API-контракт в отдельный артефакт и сократили генерацию клиента с 15 минут до нескольких секунд
Если вы когда-нибудь ловили баги из-за того, что бэкендер незаметно переименовал поле, эта статья будет особенно полезной.
В ней описывается типичная проблема, когда кодогенерация занимала слишком много времени и создавала монолитный файл на кучу строк кода, а фронтенд узнавал об изменениях контракта слишком поздно, когда UI уже ломался.
Решением стало хранение OpenAPI-схем в Git. Бэкенд экспортирует JSON при локальном запуске, а фронт перешел на ng-openapi-gen, разбивающий код на модульные функции.
В итоге время сборки сократилось до нескольких секунд, а фронтендеры могут проверять понятный diff контракта до мержа, блокируя любые сюрпризы еще на этапе разработки.
👉 https://habr.com/ru/companies/tbank/articles/1069174/
✨ Playwright для компонентных CAT-тестов
Когда говорят о тестах на Playwright, чаще всего имеют в виду e2e. Открыть приложение, пройти авторизацию, поработать с несколькими страницами и проверить сценарий целиком. Но в больших проектах быстро становится ясно, что e2e это долго, дорого и хрупко.
В статье же его предлагают использовать на уровне отдельных компонентов. Тесты запускаются в реальном браузере, а окружение компонента изолируется с помощью Storybook. В результате получается тест, который видит верстку как настоящий пользователь, ловит баги, но при этом остается быстрым, изолированным и предсказуемым.
👉 https://habr.com/ru/articles/1072918/
✨ Хайп вокруг ИИ: реальное состояние дел и будущее
Это расшифровка доклада Ричарда Кэмпбелла, канадского разработчика и технического обозревателя. Скорее исторический обзор того, как развивался ИИ и откуда взялся нынешний хайп.
Он вспоминает главные этапы развития технологии, от первых экспериментов до ChatGPT, и разбирается, почему вокруг ИИ столько шума, денег и громких обещаний.
При этом он не считает ИИ пустышкой и показывает примеры, где технология действительно приносит пользу, например в программировании и биологии.
В общем, это спокойный взгляд на ИИ без лишнего восторга и паники.
👉 https://habr.com/ru/articles/1072298/
✨ Ленивая загрузка сервисов в Angular 22
Angular давно поддерживает ленивую загрузку, но до недавнего времени она хорошо работала только для роутов и компонентов. Сервисы оставались пробелом. Сервис, зарегистрированный в корневом инжекторе, попадал в основной бандл и оставался там, даже если код, который его использует, никто не вызывал.
Angular 22 закрывает эту брешь с помощью injectAsync, который загружает сервис только при первом запросе его инстанса.
В этой статье детально разбирается, как работает новый API, что он требует от разработчика и в каких случаях окупается.
👉 https://angular.love/lazy-loading-services-in-angular-22
