🦊 Angular Fox 🚀 — русскогорящие новости сообщества


Kanal geosi va tili: Rossiya, Ruscha


Как костыль на реактивно-лисьей тяге 🔥🦊
Нравится канал? Подпишись на меня!
👉 twitter.com/thekiba_ru
💖 twitter.com/thekiba_io
✨ medium.com/@thekiba
✨ github.com/thekiba
Чаты @angular_ru @angular_jobs

Связанные каналы  |  Похожие каналы

Kanal geosi va tili
Rossiya, Ruscha
Statistika
Postlar filtri


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


Эволюция форм 

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

Именно через них пользователь взаимодействует с бизнес-логикой. И мало кто задумывается, насколько сильно API форм менялся за последние 15 лет, вместе с самой философией фреймворка.

Статья прослеживает эволюцию форм, от AngularJS с его двусторонним связыванием, через template-driven подходы и эпоху реактивных форм, до появления Signal Forms как нового стандарта.

👉 https://www.codemag.com/Article/264041/From-Template-Driven-to-Signal-Driven-The-Complete-Evolution-of-Angular-Forms


Angular Signal Forms: пользовательские контролы без ControlValueAccessor

Создание кастомных элементов управления формами в Angular долгие годы требовало написания громоздкого ControlValueAccessor. С выходом Angular 22 и стабилизацией Signal Forms этот процесс кардинально упростился. Теперь для интеграции компонента с формой достаточно использовать интерфейс FormValueControl.

В статье пошагово разбирается процесс разработки современного кастомного контрола без лишнего бойлерплейта.

👉 https://angularexperts.io/blog/angular-signal-forms-custom-controls


3 хорошие привычки начинающего фронтендера

Хороший фронтендер думает не только о коде, но и о том, как пользователь будет взаимодействовать с интерфейсом. Именно такие привычки помогают делать сайты удобнее и доступнее.

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

В ней Стас Мельников показывает, что даже без глубокого дизайнерского бэкграунда можно заметно улучшить UX, если обращать внимание на детали, которые часто упускают.

👉 https://habr.com/ru/companies/ruvds/articles/1066724/


Размытая граница между состояниями CSS и событиями JavaScript

CSS все чаще берет на себя то, что раньше делал только JavaScript. Реагирует на состояния, которые почти неотличимы от событий. Граница между псевдоклассами и обработчиками событий становится все более размытой.

В статье разбираются примеры такого пересечения, а также рассматривается экспериментальный event-trigger, будущий механизм, который может позволить запускать CSS-анимации в ответ на события.

👉 https://habr.com/ru/companies/timeweb/articles/1059272/


От парсинга DOM к контрактам: понимание WebMCP

Сейчас агенты гадают по DOM и скриншотам, пытаясь понять, что за кнопка перед ними: кликают, ждут, перепроверяют. Это медленно, дорого по токенам и хрупко. Любой редизайн или A/B-тест может сломать всю цепочку действий.

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

И Angular v22 уже стал первым крупным фреймворком с экспериментальной поддержкой WebMCP из коробки.

👉 https://angular.love/from-dom-scraping-to-contracts-understanding-webmcp-part-1


Agent Plugins

Вышла спецификация Agent Plugins 1.0.0 — открытый, независимый от вендоров формат упаковки Agent Skills и MCP-серверов в переносимые плагины. Ее развивают мейнтейнеры из Amazon, Cursor, Microsoft, OpenAI, Vercel, а теперь и Google.

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

Похоже, экосистема AI-агентов постепенно движется к общим стандартам, а не закрытым форматам.

👉 https://developers.googleblog.com/agent-plugins-package-your-skills-tools-and-more/


Представляем CopilotKit для Angular

CopilotKit — SDK для создания full-stack агентных приложений, генеративного UI и чат-интерфейсов. Начинался как React-библиотека, а теперь это мультиплатформенный фреймворк.

Разработка ИИ-интерфейсов перестала быть эксклюзивом React. Команда Soverius AI официально взяла на себя развитие @copilotkit/angular в основном репозитории проекта. Теперь Angular-разработчикам из коробки доступны готовые UI-чаты и инструменты для ИИ-агентов.

👉 https://www.copilotkit.ai/blog/copilotkit-for-angular


CSS-челленджи для 200 IQ

Часто ли вы ловите себя на мысли, что уперлись в невидимую стену, пытаясь решить, казалось бы, невыполнимую задачу? В моменты, когда ИИ, Stack Overflow и спецификации бессильны, на помощь приходит настоящая инженерная смекалка и упорство.

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

👉 https://dev.to/waterplea/css-challenges-for-200-iq-ghl


Как обрабатывать глобальные ошибки в современном zoneless Angular

В классическом Angular библиотека Zone.js незаметно перехватывала все асинхронные операции (Promise, setTimeout, addEventListener) и автоматически пересылала необработанные ошибки в центральный ErrorHandler.

В новом zoneless-режиме этот механизм исчезает. Ошибки из отклоненных промисов, сторонних скриптов или колбэков браузерных API перестают попадать в центральную обработку и просто теряются в консоли.

Решением стал provideBrowserGlobalErrorListeners(). Новый провайдер, который вместо патчинга API просто вешает нативные слушатели на window для событий error и unhandledrejection. Пойманные ошибки перенаправляются в стандартный ErrorHandler, восстанавливая единый пайплайн обработки ошибок.

👉 https://www.angularspace.com/how-to-handle-global-errors-in-modern-zoneless-angular/


Как верстали 15 лет назад

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

Сегодня все это решается парой строк на flex или grid и это отличный повод оценить, как далеко шагнул CSS.

👉 https://habr.com/ru/companies/ruvds/articles/1060630/


Как я собрал на одном Angular коде: личный кабинет для сайта, Telegram Mini App, iOS и Android

Когда стартуешь соло и требования меняются каждую неделю, писать отдельные приложения для сайта, Telegram, iOS и Android верный способ утонуть.

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

Андрей Шпилевский решил это просто. Остался на Angular и вынес всю логику и экраны в общую библиотеку для всех платформ, а мобильные приложения и Telegram Mini App обернул через Capacitor. В итоге около 95% кода общее, а платформенная специфика спрятана в адаптерах.

👉 https://habr.com/ru/articles/1064680/


Что нового в Angular 22.1?

Вышел новый минорный релиз Angular.

Основные изменения:

В linkedSignal добавлена возможность задавать кастомный сеттер для сложной логики записи.

Поддержка JSONP объявлена устаревшей из-за уязвимостей.

В CLI добавлена автоматическая миграция со старого декоратора @Injectable на новый @Service.

Ознакомиться с полным списком изменений можно здесь.

👉 https://blog.ninja-squad.com/2026/07/29/what-is-new-angular-22.1


Языковую модель на 28,9 млн параметров запустили на микроконтроллере ESP32-S3

Нейросеть работает полностью локально на плате с 16 Мбайт флеш-памяти и 512 Кбайт SRAM, а сгенерированный текст выводится на небольшой дисплей.

Модель уместили на устройстве благодаря 4-битной квантизации и распределению весов между разными типами памяти, а нужные данные из таблицы эмбеддингов подгружаются из флеш-памяти по мере необходимости.

Для сравнения, предыдущий похожий проект уместил на ESP32 только модель на 260 тыс. параметров.

👉 https://habr.com/ru/news/1064114/


Книга аутентификации

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

Вместо этого автор советует passkey, вход по биометрии или пину устройства, без единого пароля. Ключ никуда не передается и его физически не своровать, в отличие от связки логин-пароль.

👉 https://habr.com/ru/articles/1063760/


MCP как интерфейс продукта

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

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

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

Согласны ли вы с тем, что GUI постепенно уступит место агентным интерфейсам, или все же графический интерфейс останется незаменимым для большинства задач?

👉 https://habr.com/ru/companies/selectel/articles/1061986/


Как рой ИИ-агентов Cursor создал SQLite с нуля за $1339

Cursor провела эксперимент со вторым поколением роя агентов, в котором сотни агентов параллельно писали на Rust движок SQLite по документации, без исходников и интернета.

В прошлых версиях агенты создавали хаос и тысячи конфликтов в коде. Проблему решили аналогами корпоративного управления. Внедрили общие дизайн-доки, арбитров для разрешения споров, многоуровневое ревью кода и написали собственную сверхбыструю систему контроля версий взамен Git.

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

В результате получили 100% прохождение тестов, при этом кода написали в несколько раз меньше, чем в старых хаотичных версиях роя.

👉 https://habr.com/ru/articles/1061128/


Создание транзакционного router resource

Судя по всему, команда Angular начала работу над более тесной интеграцией resource API с роутером.

В репозитории появился PR с реализацией routerResource - обертки, которая пока не выставлена в публичный API, но уже демонстрирует, как ресурс может замораживать свое состояние на время навигации, ориентируясь на снапшоты и события роутера, чтобы UI не мерцал промежуточными состояниями.

👉 https://github.com/angular/angular/pull/69490

20 ta oxirgi post ko‘rsatilgan.