#blog
Angular pipes: время для переосмысления
Статья, в которой подробно разбирается внутренняя механика пайпов в контексте Ivy: фазы создания и обновления, устройство мемоизации pure пайпов, чем отличаются пайпы с фиксированным и изменяющимся числом аргументов и какую роль в этом играют структуры TView и LView.
Отдельно рассматривается взаимодействие пайпов с DI и особенности impure пайпов. Автор также показывает, как пайпы соотносятся с новой системой реактивности, рассуждает о том, зачем они всё ещё нужны в эпоху сигналов и в каких сценариях оказываются особенно полезны.
Отличный повод взглянуть на этот инструмент под новым углом!
Ссылка на статью: https://medium.com/coreteq/angular-pipes-time-to-rethink-f616ec84fb8d
Angular pipes: время для переосмысления
Статья, в которой подробно разбирается внутренняя механика пайпов в контексте Ivy: фазы создания и обновления, устройство мемоизации pure пайпов, чем отличаются пайпы с фиксированным и изменяющимся числом аргументов и какую роль в этом играют структуры TView и LView.
Отдельно рассматривается взаимодействие пайпов с DI и особенности impure пайпов. Автор также показывает, как пайпы соотносятся с новой системой реактивности, рассуждает о том, зачем они всё ещё нужны в эпоху сигналов и в каких сценариях оказываются особенно полезны.
Отличный повод взглянуть на этот инструмент под новым углом!
Ссылка на статью: https://medium.com/coreteq/angular-pipes-time-to-rethink-f616ec84fb8d
Medium
Angular pipes: Time to rethink
Let’s discuss the role pipes play in modern Angular architecture.
❤5
#blog
Я никак не мог пройти мимо и не поделиться красивой и качественной статьей "CSS Wrapped 2025". Как понятно из названия - это подбивка из значимых улучшений в уходящем году. Крайне рекомендую посетить оригинал, а если совсем вкратце списком:
- Invoker Commands
- Dialog Light Dismiss
- popover=hint
- Customizable select
- ::scroll-marker/button()
- scroll-target-group
- Anchored container queries
- Interest invokers
- Scroll-state queries
- Tree counting functions
- scrollIntoView() container
- Nested View Transition Groups
- DOM State-Preserving Move
- Advanced attr() function
- ToggleEvent.source
- text-box features
- shape() function
- if() statements
- Custom Functions
- Expanded range syntax
- Stretch sizing keyword
- corner-shape
Статья - https://chrome.dev/css-wrapped-2025
Я никак не мог пройти мимо и не поделиться красивой и качественной статьей "CSS Wrapped 2025". Как понятно из названия - это подбивка из значимых улучшений в уходящем году. Крайне рекомендую посетить оригинал, а если совсем вкратце списком:
- Invoker Commands
- Dialog Light Dismiss
- popover=hint
- Customizable select
- ::scroll-marker/button()
- scroll-target-group
- Anchored container queries
- Interest invokers
- Scroll-state queries
- Tree counting functions
- scrollIntoView() container
- Nested View Transition Groups
- DOM State-Preserving Move
- Advanced attr() function
- ToggleEvent.source
- text-box features
- shape() function
- if() statements
- Custom Functions
- Expanded range syntax
- Stretch sizing keyword
- corner-shape
Статья - https://chrome.dev/css-wrapped-2025
CSS Wrapped 2025
Sculpt dynamic interfaces, stretch your imagination, and play with these 22 powerful new CSS features that landed in Chrome this year.
❤3
#blog
Статья про возможность оптимизации загрузки JS с помощью Explicit Compile Hints. Кратко:
- Проблема: компиляция JS при запуске замедляет загрузку.
- Решение в Chrome 136: коммент //# allFunctionsCalledOnLoad для eager-компиляции всего файла.
- Выгода: средний показатель ускорения на популярных сайтах - 630 мс.
- Как работает:
Без подсказки — функции компилируются при первом вызове
С подсказкой — компиляция идёт заранее, в фоне.
- Пример:
- Важно: используйте фичу умеренно — избыточная компиляция тратит память.
- Далее: поддержка eager compilation на отдельные функции.
Статья: https://v8.dev/blog/explicit-compile-hints
Статья про возможность оптимизации загрузки JS с помощью Explicit Compile Hints. Кратко:
- Проблема: компиляция JS при запуске замедляет загрузку.
- Решение в Chrome 136: коммент //# allFunctionsCalledOnLoad для eager-компиляции всего файла.
- Выгода: средний показатель ускорения на популярных сайтах - 630 мс.
- Как работает:
Без подсказки — функции компилируются при первом вызове
С подсказкой — компиляция идёт заранее, в фоне.
- Пример:
//# allFunctionsCalledOnLoad
function testfunc2() { /* скомпилируется сразу */ }
- Важно: используйте фичу умеренно — избыточная компиляция тратит память.
- Далее: поддержка eager compilation на отдельные функции.
Статья: https://v8.dev/blog/explicit-compile-hints
v8.dev
Giving V8 a Heads-Up: Faster JavaScript Startup with Explicit Compile Hints · V8
Explicit compile hints control which JavaScript files and functions are parsed and compiled eagerly
❤2
#blog
Сегодня сразу две статьи
Первая - о том, как Model Context Protocol (MCP) меняет взаимодействие ИИ с Angular-проектами. В ней разбирается, зачем вообще нужен MCP, как Angular MCP-сервер защищает от устаревших API и ошибок LLM, почему локальный доступ к проекту и окружению - ключ к настоящим агентным возможностям, и что всё это значит для будущего IDE и AI-ассистентов (на примере Google Antigravity).
Ссылка: https://blog.angulartraining.com/using-ai-with-angular-2025-update-5ab4b629e331
Вторая - практический эксперимент с Angular MCP-сервером и vibe-кодингом. Пошаговый разбор создания Todo-приложения с помощью ИИ: от настройки MCP и агентских инструкций до работы с сигналами, потоком управления и Angular CLI. Честный опыт с плюсами и минусами работы и выводами о том, где ИИ реально помогает, а где его всё ещё нужно жёстко контролировать.
Если вам интересно, как выглядит современная связка Angular + ИИ на практике - и почему без правильных инструкций агенту никуда - эти две статьи отлично дополняют друг друга.
Ссылка: https://dev.to/angular/a-quick-vibe-code-experiment-with-angulars-mcp-server-3g2h
Сегодня сразу две статьи
Первая - о том, как Model Context Protocol (MCP) меняет взаимодействие ИИ с Angular-проектами. В ней разбирается, зачем вообще нужен MCP, как Angular MCP-сервер защищает от устаревших API и ошибок LLM, почему локальный доступ к проекту и окружению - ключ к настоящим агентным возможностям, и что всё это значит для будущего IDE и AI-ассистентов (на примере Google Antigravity).
Ссылка: https://blog.angulartraining.com/using-ai-with-angular-2025-update-5ab4b629e331
Вторая - практический эксперимент с Angular MCP-сервером и vibe-кодингом. Пошаговый разбор создания Todo-приложения с помощью ИИ: от настройки MCP и агентских инструкций до работы с сигналами, потоком управления и Angular CLI. Честный опыт с плюсами и минусами работы и выводами о том, где ИИ реально помогает, а где его всё ещё нужно жёстко контролировать.
Если вам интересно, как выглядит современная связка Angular + ИИ на практике - и почему без правильных инструкций агенту никуда - эти две статьи отлично дополняют друг друга.
Ссылка: https://dev.to/angular/a-quick-vibe-code-experiment-with-angulars-mcp-server-3g2h
Medium
Using AI with Angular — 2025 update
It’s 2025, and AI is almost everywhere at this point. To me, the AI landscape was changing too rapidly to write anything about it before…
❤3👍3
#blog
В завершение года - две небольших статьи про обновления в Chrome. На повестке - individual requests throttle и scroll-triggered animations. О чем повествуется:
В Chrome 144 появилось индивидуальное ограничение скорости сетевых запросов в DevTools.
- Можно блокировать или замедлять отдельные URL или домены, не всю страницу.
- Настройки — через вкладку Request conditions с масками, приоритетами и профилями.
- Заблокированные запросы — красные, замедленные — желтые с иконкой часов.
- Удобно тестировать влияние медленных ресурсов (например, сторонних API или картинок).
В Chrome 145 добавлены CSS-анимации, запускаемые при прокрутке (scroll-triggered animations).
- Теперь анимации активируются при достижении определённого положения скролла.
- Используются новые свойства: animation-trigger и timeline-trigger.
- Активация и деактивация задаются через диапазоны entry/exit.
- Работают на CSS, без IntersectionObserver.
Пример:
При прокрутке до нужного положения карточка плавно появляется (play-forwards), а при уходе из зоны видимости — исчезает (play-backwards).
Читать здесь:
https://developer.chrome.com/blog/throttle-individual-network-requests?hl=en
https://developer.chrome.com/blog/scroll-triggered-animations?hl=en
Всем хороших праздников и до встречи в новом году!
В завершение года - две небольших статьи про обновления в Chrome. На повестке - individual requests throttle и scroll-triggered animations. О чем повествуется:
В Chrome 144 появилось индивидуальное ограничение скорости сетевых запросов в DevTools.
- Можно блокировать или замедлять отдельные URL или домены, не всю страницу.
- Настройки — через вкладку Request conditions с масками, приоритетами и профилями.
- Заблокированные запросы — красные, замедленные — желтые с иконкой часов.
- Удобно тестировать влияние медленных ресурсов (например, сторонних API или картинок).
В Chrome 145 добавлены CSS-анимации, запускаемые при прокрутке (scroll-triggered animations).
- Теперь анимации активируются при достижении определённого положения скролла.
- Используются новые свойства: animation-trigger и timeline-trigger.
- Активация и деактивация задаются через диапазоны entry/exit.
- Работают на CSS, без IntersectionObserver.
Пример:
.card {
timeline-trigger: --t view() contain 15% contain 85%;
animation: unclip 0.35s ease-in-out both;
animation-trigger: --t play-forwards play-backwards;
}При прокрутке до нужного положения карточка плавно появляется (play-forwards), а при уходе из зоны видимости — исчезает (play-backwards).
Читать здесь:
https://developer.chrome.com/blog/throttle-individual-network-requests?hl=en
https://developer.chrome.com/blog/scroll-triggered-animations?hl=en
Всем хороших праздников и до встречи в новом году!
Chrome for Developers
Throttle individual network requests | Blog | Chrome for Developers
Use the Request conditions tab to block specific URLs or apply custom network throttling profiles to individual resources.
1❤3
#blog
Подробный гайд по Angular Signal Forms Validation, с примерами и кейсами. И хоть базовые правила знакомы всем (required, email, min/max, minLength/maxLength, pattern), но остальные возможности точно будут полезны для ознакомления:
- Кастомная валидация:
- Асинхронная валидация:
- Интеграция: validateStandartSchema() для Zod, Valibot и подобных.
- Структурные функции: applyEach(),
- Управление состоянием:
Статья: https://netbasal.medium.com/master-angular-signal-forms-validation-all-functions-explained-d9b0cd1c7be6
Подробный гайд по Angular Signal Forms Validation, с примерами и кейсами. И хоть базовые правила знакомы всем (required, email, min/max, minLength/maxLength, pattern), но остальные возможности точно будут полезны для ознакомления:
- Кастомная валидация:
validate(), доступ к полям и состояниям через FieldContext.- Асинхронная валидация:
validateAsync(), validateHttp(), поддержка lazy loading.- Интеграция: validateStandartSchema() для Zod, Valibot и подобных.
- Структурные функции: applyEach(),
apply(), applyWhen(), applyWhenValue() для переиспользования схем.- Управление состоянием:
debounce, disabled, hidden, readonly.Статья: https://netbasal.medium.com/master-angular-signal-forms-validation-all-functions-explained-d9b0cd1c7be6
Medium
Master Angular Signal Forms Validation — All Functions Explained
Angular Signal Forms provides a powerful, reactive, schema-based validation system that makes form validation both intuitive and type-safe…
👍4❤2
#blog
Сегодняшняя статья посвящена deepSignal - маленькой, но мощной утилите.
🔹 Что делает deepSignal:
- Создаёт сигнал для вложенного свойства объекта. Потребители уведомляются только при изменении этого конкретного свойства.
- Позволяет писать значения прямо во вложенный сигнал.
- Обеспечивает высокую производительность даже для больших форм.
В статье подробно разбирается то, как deepSignal работает «под капотом» и как его используют в сигнальных формах Angular.
Статья: https://medium.com/netanelbasal/the-magic-of-deepsignal-how-angular-signal-forms-enable-true-nested-reactivity-6b9e0d73eb9d
Сегодняшняя статья посвящена deepSignal - маленькой, но мощной утилите.
🔹 Что делает deepSignal:
- Создаёт сигнал для вложенного свойства объекта. Потребители уведомляются только при изменении этого конкретного свойства.
- Позволяет писать значения прямо во вложенный сигнал.
- Обеспечивает высокую производительность даже для больших форм.
В статье подробно разбирается то, как deepSignal работает «под капотом» и как его используют в сигнальных формах Angular.
Статья: https://medium.com/netanelbasal/the-magic-of-deepsignal-how-angular-signal-forms-enable-true-nested-reactivity-6b9e0d73eb9d
Medium
The Magic of deepSignal: How Angular Signal Forms Enable True Nested Reactivity
Angular’s signal-based forms introduce a deceptively simple idea that solves a long-standing reactivity problem: how to work with nested…
🔥4❤1👍1
#blog
Статья посвящена тому, что автор называет "великим сдвигом во фронтенде", а именно сдвигу от React к Angular в 2026 ✨
Angular постепенно возвращается в игру - и не как "сложный фреймворк из прошлого", а как ответ на усталость от хаоса во фронтенде. Standalone-компоненты, сигналы, TypeScript-first архитектура и решения "из коробки" сделали Angular быстрым, предсказуемым и удобным для больших команд. Там, где раньше выбирали гибкость React, теперь всё чаще выбирают структуру, масштабируемость и долгосрочную поддержку.
Автор пишет о том, как структура Angular ускоряет разработку, облегчает масштабные рефакторинги, упрощает онбординг новых сотрудников и повышает стабильность приложений. Производительность и интеграция с TypeScript делают фреймворк особенно привлекательным для enterprise-проектов и сложных приложений.
Это всё не про то, что React стал плох, а про то, как Angular решает проблемы команд.
Подробное сравнение здесь: https://medium.com/@satnammca/the-great-frontend-shift-react-to-angular-by-2026-1697c05e860e
Статья посвящена тому, что автор называет "великим сдвигом во фронтенде", а именно сдвигу от React к Angular в 2026 ✨
Angular постепенно возвращается в игру - и не как "сложный фреймворк из прошлого", а как ответ на усталость от хаоса во фронтенде. Standalone-компоненты, сигналы, TypeScript-first архитектура и решения "из коробки" сделали Angular быстрым, предсказуемым и удобным для больших команд. Там, где раньше выбирали гибкость React, теперь всё чаще выбирают структуру, масштабируемость и долгосрочную поддержку.
Автор пишет о том, как структура Angular ускоряет разработку, облегчает масштабные рефакторинги, упрощает онбординг новых сотрудников и повышает стабильность приложений. Производительность и интеграция с TypeScript делают фреймворк особенно привлекательным для enterprise-проектов и сложных приложений.
Это всё не про то, что React стал плох, а про то, как Angular решает проблемы команд.
Подробное сравнение здесь: https://medium.com/@satnammca/the-great-frontend-shift-react-to-angular-by-2026-1697c05e860e
Medium
The Great Frontend Shift: React to Angular by 2026
The frontend landscape is experiencing a seismic shift. After nearly a decade of React’s dominance, Angular is making an unexpected…
1🔥7👍4❤1👎1
#blog
Статья о проблеме "превращения всего в массивы JS", что внутри:
Проблема:
Традиционная обработка массивов в JS (через
- Создаются множество промежуточных массивов
- Обрабатываются все элементы, даже если нужны только первые несколько
- Происходит лишняя работа, особенно на больших данных
Пример:
Здесь сначала фильтруются все элементы, потом преобразуются, и только потом берутся первые 10 (и каждая итерация создает новый массив).
Решение:
Использовать итераторы с lazy методами —
Пример с итератором:
Здесь обработка элементов происходит по одному, и останавливается после первых 10 найденных.
Это экономит память и процессорное время.
Польза в UI и асинхронных сценариях:
- Виртуализованные списки
- Бесконечный скролл
- Потоковая обработка данных
- Эффективная работа с большими наборами данных
Важно:
Итераторы не заменяют массивы полностью.
Они не подходят, если нужен прямой доступ к элементам (например, items[5]) или мутации.
Поддержка:
Современные браузеры и Node.js 22+.
Статья - https://allthingssmitty.com/2026/01/12/stop-turning-everything-into-arrays-and-do-less-work-instead/
Статья о проблеме "превращения всего в массивы JS", что внутри:
Проблема:
Традиционная обработка массивов в JS (через
map, filter, slice) — тяжеловесная, потому что:- Создаются множество промежуточных массивов
- Обрабатываются все элементы, даже если нужны только первые несколько
- Происходит лишняя работа, особенно на больших данных
Пример:
const visibleItems = items
.filter(isVisible)
.map(transform)
.slice(0, 10);
Здесь сначала фильтруются все элементы, потом преобразуются, и только потом берутся первые 10 (и каждая итерация создает новый массив).
Решение:
Использовать итераторы с lazy методами —
values(), filter, map, take, toArray.Пример с итератором:
const visibleItems = items
.values()
.filter(isVisible)
.map(transform)
.take(10)
.toArray();
Здесь обработка элементов происходит по одному, и останавливается после первых 10 найденных.
Это экономит память и процессорное время.
Польза в UI и асинхронных сценариях:
- Виртуализованные списки
- Бесконечный скролл
- Потоковая обработка данных
- Эффективная работа с большими наборами данных
Важно:
Итераторы не заменяют массивы полностью.
Они не подходят, если нужен прямой доступ к элементам (например, items[5]) или мутации.
Поддержка:
Современные браузеры и Node.js 22+.
Статья - https://allthingssmitty.com/2026/01/12/stop-turning-everything-into-arrays-and-do-less-work-instead/
Allthingssmitty
Stop turning everything into arrays (and do less work instead) - Matt Smith
Do less work in JavaScript: lazy data pipelines with iterator helpers instead of arrays.
👍4❤1
#blog
В
Кроме того,
Основные причины:
- OnPush давно рекомендовался как лучшая практика.
- Упрощение настройки и поведения фреймворка.
- Поддержка zoneless-режима становится стандартом.
Angular планирует выпустить эти изменения в мае 2026 года в версии v22.
Статья: https://habr.com/ru/news/989852/
В
Angular v22 будет изменена стандартная стратегия обнаружения изменений (Change Detection). Вместо Default по умолчанию будет использоваться OnPush. Это решение направлено на улучшение производительности и соответствие современным практикам разработки без использования Zone.js (zoneless-режим).Кроме того,
ChangeDetectionStrategy.Default будет переименован в ChangeDetectionStrategy.Eager, чтобы точнее отражать своё поведение — агрессивную проверку изменений. Существующие проекты будут автоматически обновлены, и для сохранения прежнего поведения будет использоваться Eager.Основные причины:
- OnPush давно рекомендовался как лучшая практика.
- Упрощение настройки и поведения фреймворка.
- Поддержка zoneless-режима становится стандартом.
Angular планирует выпустить эти изменения в мае 2026 года в версии v22.
Статья: https://habr.com/ru/news/989852/
Хабр
Прощай, Default: Angular меняет стандартную стратегию на OnPush и вводит Eager
Коллеги, привет! От команды Angular пришли отличные новости: в 22-й версии стратегия OnPush станет стандартной. По этому поводу разработчики выпустили новый RFC (Request for Comments). Ниже я...
👍3❤1
#news
Мы много говорим о преимуществах сигнального стора, но стоит ли полностью отказываться от NgRx?
NgRx - мощный инструмент, но для большинства Angular-приложений он давно стал излишним. Actions, reducers, selectors, effects ради простого UI. Angular Signals меняют правила игры. Сигналы позволяют создавать реактивное и масштабируемое управление состоянием. Иммутабельные обновления через update(), производные значения через computed(), сайд-эффекты через effect() - всё типизировано, предсказуемо и легко тестируется.
В этой статье рассказывается:
- как заменить NgRx-сторы на Signals без потери контроля;
- в каких случаях разумно использовать NgRx;
- как использовать гибридный подход (NgRx для глобального стейта, сигналы для UI);
- как за ~100 строк собрать production-ready todo-приложение;
- как получить ускорение рендеринга в 2-3 раза и сократить кодовую базу примерно на 50%.
Ссылка на статью: https://javascript.plainenglish.io/how-to-replace-over-complicated-ngrx-stores-with-angular-signals-without-losing-control-ee680938942b
Мы много говорим о преимуществах сигнального стора, но стоит ли полностью отказываться от NgRx?
NgRx - мощный инструмент, но для большинства Angular-приложений он давно стал излишним. Actions, reducers, selectors, effects ради простого UI. Angular Signals меняют правила игры. Сигналы позволяют создавать реактивное и масштабируемое управление состоянием. Иммутабельные обновления через update(), производные значения через computed(), сайд-эффекты через effect() - всё типизировано, предсказуемо и легко тестируется.
В этой статье рассказывается:
- как заменить NgRx-сторы на Signals без потери контроля;
- в каких случаях разумно использовать NgRx;
- как использовать гибридный подход (NgRx для глобального стейта, сигналы для UI);
- как за ~100 строк собрать production-ready todo-приложение;
- как получить ускорение рендеринга в 2-3 раза и сократить кодовую базу примерно на 50%.
Ссылка на статью: https://javascript.plainenglish.io/how-to-replace-over-complicated-ngrx-stores-with-angular-signals-without-losing-control-ee680938942b
Medium
How To Replace Over-Complicated NgRx Stores With Angular Signals — Without Losing Control
Hey, picture this: you’re knee-deep in an Angular app, drowning in NgRx actions, reducers, effects, and selectors just to flip a simple…
🔥3❤1👍1👎1
#blog
Вышел ESLint v10.0.0 — крупное обновление с новыми функциями и критическими изменениями.
Основные моменты:
- Поддержка устаревших версий Node.js прекращена (до v20.19.0, v21.x, v23.x).
- Отказ от
- Новый алгоритм поиска конфигурационных файлов: поиск начинается от каждого линтуемого файла, что удобно для монорепозиториев.
- Отслеживание JSX-ссылок: теперь JSX-элементы корректно обрабатываются в области видимости.
- Улучшения в RuleTester: добавлены новые опции для более строгого тестирования правил, а также улучшена отладка.
- Новая опция countThis в правиле max-params: позволяет игнорировать this при подсчёте параметров функции.
- Обновлена конфигурация
- Удалены устаревшие методы и свойства, включая context.getCwd(), SourceCode.getTokenOrCommentBefore() и другие.
- Обновлён минимальный требуемый jiti до 2.2.0 для корректной работы с TypeScript-конфигами.
- Улучшена поддержка цветового вывода через флаги --color и --no-color.
Статья: https://eslint.org/blog/2026/02/eslint-v10.0.0-released/
Вышел ESLint v10.0.0 — крупное обновление с новыми функциями и критическими изменениями.
Основные моменты:
- Поддержка устаревших версий Node.js прекращена (до v20.19.0, v21.x, v23.x).
- Отказ от
eslintrc-конфигураций: удалены все методы и файлы, связанные с eslintrc. Теперь используется только flat-конфигурация.- Новый алгоритм поиска конфигурационных файлов: поиск начинается от каждого линтуемого файла, что удобно для монорепозиториев.
- Отслеживание JSX-ссылок: теперь JSX-элементы корректно обрабатываются в области видимости.
- Улучшения в RuleTester: добавлены новые опции для более строгого тестирования правил, а также улучшена отладка.
- Новая опция countThis в правиле max-params: позволяет игнорировать this при подсчёте параметров функции.
- Обновлена конфигурация
eslint:recommended: добавлены важные правила.- Удалены устаревшие методы и свойства, включая context.getCwd(), SourceCode.getTokenOrCommentBefore() и другие.
- Обновлён минимальный требуемый jiti до 2.2.0 для корректной работы с TypeScript-конфигами.
- Улучшена поддержка цветового вывода через флаги --color и --no-color.
Статья: https://eslint.org/blog/2026/02/eslint-v10.0.0-released/
eslint.org
ESLint v10.0.0 released - ESLint - Pluggable JavaScript Linter
A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.
👍5❤1
#blog
Команда Webpack выпустила Roadmap 2026. Что внутри:
CSS Modules без плагинов — интеграция в ядро webpack, экспериментальная поддержка в 2026, стабильная — в webpack 6.
Universal target — поддержка запуска кода в Node.js, Deno, Bun и браузере с выводом в ESM.
TypeScript без загрузчиков — отказ от ts-loader, улучшение встроенной поддержки.
HTML как точка входа — интеграция html-webpack-plugin в ядро webpack.
Поддержка нескольких рантаймов — улучшение совместимости с Deno, Bun и браузером, уменьшение зависимости от Node.js.
Lazy Barrel Optimization — ускорение сборки за счёт отложенной обработки неиспользуемых модулей.
Единый плагин минификации — объединение terser, css-minimizer и других в один minimizer-webpack-plugin.
Улучшение инструментов разработки — обновление CLI, упрощение dev-сервера и мидлварей.
Автоматическая документация — генерация из типов и схем для точности и актуальности.
Многопоточный API — параллелизация сборки, вдохновлённая thread-loader.
Статья - https://webpack.js.org/blog/2026-04-02-roadmap-2026/
Команда Webpack выпустила Roadmap 2026. Что внутри:
CSS Modules без плагинов — интеграция в ядро webpack, экспериментальная поддержка в 2026, стабильная — в webpack 6.
Universal target — поддержка запуска кода в Node.js, Deno, Bun и браузере с выводом в ESM.
TypeScript без загрузчиков — отказ от ts-loader, улучшение встроенной поддержки.
HTML как точка входа — интеграция html-webpack-plugin в ядро webpack.
Поддержка нескольких рантаймов — улучшение совместимости с Deno, Bun и браузером, уменьшение зависимости от Node.js.
Lazy Barrel Optimization — ускорение сборки за счёт отложенной обработки неиспользуемых модулей.
Единый плагин минификации — объединение terser, css-minimizer и других в один minimizer-webpack-plugin.
Улучшение инструментов разработки — обновление CLI, упрощение dev-сервера и мидлварей.
Автоматическая документация — генерация из типов и схем для точности и актуальности.
Многопоточный API — параллелизация сборки, вдохновлённая thread-loader.
Статья - https://webpack.js.org/blog/2026-04-02-roadmap-2026/
❤2
#blog
Сегодня снова поговорим про сигнальные формы - новый экспериментальный API уже здесь, но есть важный нюанс. По умолчанию сигнальные формы не добавляют привычные CSS-классы состояния (ng-valid, ng-invalid, ng-touched). Если ваши стили завязаны, например, на .ng-invalid - при миграции можно неожиданно "сломать" UI.
В статье разбирается следующее:
- как вернуть классическое поведение через provideSignalFormsConfig
- как настроить собственные динамические классы
- почему использование объекта конфигурации - это продуманное решение с точки зрения дизайна API
Ссылка на статью: https://angularexperts.ch/blog/signal-forms-config
Сегодня снова поговорим про сигнальные формы - новый экспериментальный API уже здесь, но есть важный нюанс. По умолчанию сигнальные формы не добавляют привычные CSS-классы состояния (ng-valid, ng-invalid, ng-touched). Если ваши стили завязаны, например, на .ng-invalid - при миграции можно неожиданно "сломать" UI.
В статье разбирается следующее:
- как вернуть классическое поведение через provideSignalFormsConfig
- как настроить собственные динамические классы
- почему использование объекта конфигурации - это продуманное решение с точки зрения дизайна API
Ссылка на статью: https://angularexperts.ch/blog/signal-forms-config
Angular Experts
Angular Signal Forms Config - Angular Experts
Learn how to configure Angular Signal Forms to bring back the classic CSS state classes (like ng-valid, ng-invalid, and ng-touched)—either for backward compatibility with existing styles or to unlock new customization, like emitting your own tailored state…
👍2🔥2
#blog
DevTools Chrome 145: фокус на стабильность, производительность и улучшение интерфейса.
- MCP-сервер обновлён до v0.14.0 с авто-подключением, унифицированной эмуляцией и сохранением логов.
- В Performance панели видны "мягкие навигации" для SPA.
- Построчный профилинг в Sources стал точнее, особенно для минифицированного кода.
- Ускорена работа с трассировками в Performance.
- В Network добавлена колонка "Render blocking" для анализа ресурсов.
- Request Conditions теперь с поддержкой ограничения скорости по умолчанию.
- Поддержка @starting-style включена для отладки анимаций.
- AI Assistance поддерживает вставку изображений.
- Улучшена доступность и мелкие элементы интерфейса.
Статья: https://developer.chrome.com/blog/new-in-devtools-145?hl=en
DevTools Chrome 145: фокус на стабильность, производительность и улучшение интерфейса.
- MCP-сервер обновлён до v0.14.0 с авто-подключением, унифицированной эмуляцией и сохранением логов.
- В Performance панели видны "мягкие навигации" для SPA.
- Построчный профилинг в Sources стал точнее, особенно для минифицированного кода.
- Ускорена работа с трассировками в Performance.
- В Network добавлена колонка "Render blocking" для анализа ресурсов.
- Request Conditions теперь с поддержкой ограничения скорости по умолчанию.
- Поддержка @starting-style включена для отладки анимаций.
- AI Assistance поддерживает вставку изображений.
- Улучшена доступность и мелкие элементы интерфейса.
Статья: https://developer.chrome.com/blog/new-in-devtools-145?hl=en
Chrome for Developers
What's new in DevTools (Chrome 145) | Blog | Chrome for Developers
Auto-connect and emulation for Chrome DevTools MCP, soft navigation traces, precise line-level profiling, and a render-blocking network column
👍2❤1
#blog
Angular постепенно отказывается от Zone.js — начиная с Angular 21 режим Zoneless становится новым стандартом. Что это значит для существующих приложений и как безопасно перейти на новую модель?
В статье разбирается:
- зачем вообще мигрировать на Zoneless
- почему OnPush и сигналы сильно упрощают переход
- как использовать unit-тесты, чтобы заранее проверить совместимость компонентов
Главная мысль: миграцию можно делать постепенно — без рискованных изменений в кодовой базе.
Ссылка: https://medium.com/javascript-in-plain-english/how-to-migrate-your-angular-app-to-zoneless-9f9350040e19
Angular постепенно отказывается от Zone.js — начиная с Angular 21 режим Zoneless становится новым стандартом. Что это значит для существующих приложений и как безопасно перейти на новую модель?
В статье разбирается:
- зачем вообще мигрировать на Zoneless
- почему OnPush и сигналы сильно упрощают переход
- как использовать unit-тесты, чтобы заранее проверить совместимость компонентов
Главная мысль: миграцию можно делать постепенно — без рискованных изменений в кодовой базе.
Ссылка: https://medium.com/javascript-in-plain-english/how-to-migrate-your-angular-app-to-zoneless-9f9350040e19
Medium
How to migrate your Angular app to Zoneless
Learn how to gradually migrate your Angular app to Zoneless and keep your codebase future-proof with practical tips.
👍3❤🔥2🔥2
#blog
Команда NodeJs опубликовала обновление графика релизов. Вкратце:
1. Новый график релизов — начиная с Node.js 27.x: 1 мажорный релиз в год (вместо 2), каждый релиз становится LTS.
2. Alpha-релизы — доступны с октября по март, разрешены семантически мажорные изменения, предназначены для разработчиков библиотек.
3. Три фазы релиза: Alpha (6 мес), Current (6 мес), LTS (30 мес), всего поддержка — 36 месяцев.
4. Упрощение для мейнтейнеров — снижение нагрузки за счёт сокращения активных версий и упрощения backporting.
5. Стабильность для бизнеса — предсказуемый график обновлений: релиз в апреле, LTS в октябре.
6. Без odd/even разделения — все версии — LTS, упрощено восприятие для новичков.
7. Интеграция с CITGM — тестирование с популярными пакетами для выявления проблем до релиза.
8. Версионирование по году — версия 27 в 2027, 28 — в 2028 и т.д.
9. Без изменений в LTS-поддержке — 30 месяцев, миграционные окна сохранены.
10. V8 остаётся актуальным — обновления движка не старше 6 месяцев.
11. Node.js 26 — последний по старой схеме, LTS в октябре 2026, EOL в апреле 2029.
12. Node.js 27 — первый релиз по новой схеме, Alpha с октября 2026, LTS с октября 2027, EOL в апреле 2030.
Статья: https://nodejs.org/en/blog/announcements/evolving-the-nodejs-release-schedule
Команда NodeJs опубликовала обновление графика релизов. Вкратце:
1. Новый график релизов — начиная с Node.js 27.x: 1 мажорный релиз в год (вместо 2), каждый релиз становится LTS.
2. Alpha-релизы — доступны с октября по март, разрешены семантически мажорные изменения, предназначены для разработчиков библиотек.
3. Три фазы релиза: Alpha (6 мес), Current (6 мес), LTS (30 мес), всего поддержка — 36 месяцев.
4. Упрощение для мейнтейнеров — снижение нагрузки за счёт сокращения активных версий и упрощения backporting.
5. Стабильность для бизнеса — предсказуемый график обновлений: релиз в апреле, LTS в октябре.
6. Без odd/even разделения — все версии — LTS, упрощено восприятие для новичков.
7. Интеграция с CITGM — тестирование с популярными пакетами для выявления проблем до релиза.
8. Версионирование по году — версия 27 в 2027, 28 — в 2028 и т.д.
9. Без изменений в LTS-поддержке — 30 месяцев, миграционные окна сохранены.
10. V8 остаётся актуальным — обновления движка не старше 6 месяцев.
11. Node.js 26 — последний по старой схеме, LTS в октябре 2026, EOL в апреле 2029.
12. Node.js 27 — первый релиз по новой схеме, Alpha с октября 2026, LTS с октября 2027, EOL в апреле 2030.
Статья: https://nodejs.org/en/blog/announcements/evolving-the-nodejs-release-schedule
nodejs.org
Node.js — Evolving the Node.js Release Schedule
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
👍3
#blog
Вышел Vite 8.0. Что нового:
1. Vite 8 с Rolldown — новый Rust-бандлер вместо Rollup + esbuild, в 10–30× быстрее, с полной совместимостью плагинов.
2. Расширенные возможности — full bundle mode, гибкое разделение чанков, Module Federation, кэширование на уровне модулей.
3. Vite Plugin Registry — каталог плагинов на registry.vite.dev.
4. Ускорение сборки — до 64% быстрее в реальных проектах.
5. Единая toolchain — Vite, Rolldown и Oxc работают слаженно.
6. Новые фичи — встроенные devtools, tsconfig paths, emitDecoratorMetadata, WASM в SSR, логирование в терминал.
7. @vitejs/plugin-react v6 — на Oxc, без Babel, поддержка React Compiler.
8. Поддержка Node.js — Node.js 20.19+ и 22.12+.
9. Больший размер — +15 МБ из-за lightningcss и Rolldown.
10. Постепенная миграция — через rolldown-vite на Vite 7.
11. Благодарности Rollup и esbuild — ключевые проекты для старта Vite.
Статья - https://vite.dev/blog/announcing-vite8
Вышел Vite 8.0. Что нового:
1. Vite 8 с Rolldown — новый Rust-бандлер вместо Rollup + esbuild, в 10–30× быстрее, с полной совместимостью плагинов.
2. Расширенные возможности — full bundle mode, гибкое разделение чанков, Module Federation, кэширование на уровне модулей.
3. Vite Plugin Registry — каталог плагинов на registry.vite.dev.
4. Ускорение сборки — до 64% быстрее в реальных проектах.
5. Единая toolchain — Vite, Rolldown и Oxc работают слаженно.
6. Новые фичи — встроенные devtools, tsconfig paths, emitDecoratorMetadata, WASM в SSR, логирование в терминал.
7. @vitejs/plugin-react v6 — на Oxc, без Babel, поддержка React Compiler.
8. Поддержка Node.js — Node.js 20.19+ и 22.12+.
9. Больший размер — +15 МБ из-за lightningcss и Rolldown.
10. Постепенная миграция — через rolldown-vite на Vite 7.
11. Благодарности Rollup и esbuild — ключевые проекты для старта Vite.
Статья - https://vite.dev/blog/announcing-vite8
vitejs
Vite 8.0 is out!
Vite 8 Release Announcement
🔥3
#blog
Многие уже могли увидеть, что в Angular 21.2 добавили поддержку чистых JS-функций в шаблонах. В данной статье эта функциональность рассматривается на примерах, а если тезисно:
- Можно писать инлайновые функции без объявления в компоненте.
- Поддерживаются map, filter, find, update сигналов и передача функций.
- Есть ограничения: нельзя писать многострочные функции, применять пайпы внутри них (только к результату) и возвращать функции.
- Плюс: меньше кода. Минусы: сложность шаблонов, возможное падение производительности.
- Автор все-таки советует использовать computed или пайпы вместо функций в шаблонах.
Статья: https://habr.com/ru/articles/1013922/
Многие уже могли увидеть, что в Angular 21.2 добавили поддержку чистых JS-функций в шаблонах. В данной статье эта функциональность рассматривается на примерах, а если тезисно:
- Можно писать инлайновые функции без объявления в компоненте.
- Поддерживаются map, filter, find, update сигналов и передача функций.
- Есть ограничения: нельзя писать многострочные функции, применять пайпы внутри них (только к результату) и возвращать функции.
- Плюс: меньше кода. Минусы: сложность шаблонов, возможное падение производительности.
- Автор все-таки советует использовать computed или пайпы вместо функций в шаблонах.
Статья: https://habr.com/ru/articles/1013922/
Хабр
Чистые функции в html шаблонах Angular
Начиная с версии 21.2 Angular внедрил поддержку чистых JS функций в html шаблонах. Теперь можно инлайнить функции без необходимости определения их в классе компонента. Фича, на мой взгляд, довольно...
❤4
#blog
Вышел анонс
Статус релиза: TypeScript 6.0 — переходная версия, последняя на текущей кодовой базе (JS). Следующая версия 7.0 будет полностью переписана на Go для скорости и многопоточности.
Новые возможности:
- Поддержка подпутей импорта, начинающихся с #/ (аналог @/ в бандлерах).
- Добавлены типы для Temporal API (работа с датой/временем) и методов Map.getOrInsert (upsert).
- Встроенная поддержка RegExp.escape.
- Библиотека dom теперь включает итерируемые коллекции по умолчанию (не нужно отдельно подключать dom.iterable).
- Улучшен вывод типов для функций без явного this (меньше контекстной зависимости).
Изменения по умолчанию (Breaking Changes):
-
- module по умолчанию — esnext, target — es2025.
- types по умолчанию — пустой массив [] (нужно явно указывать, например, ["node"]), что ускоряет сборку.
- rootDir теперь равен папке с tsconfig.json.
Устаревшие функции (будут удалены в 7.0):
- Целевая версия es5 и флаг --downlevelIteration.
- Стратегия
- Форматы модулей: amd, umd, systemjs, none.
- Опция
- Синтаксис module для неймспейсов (оставлен только namespace).
- Импорт с asserts (заменен на with).
- Отключение
Миграция: Для подготовки к TS 7.0 рекомендуется исправить все предупреждения о депрекации в версии 6.0.
Статья - https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/
Вышел анонс
TypeScript 6.0. Что внутри:Статус релиза: TypeScript 6.0 — переходная версия, последняя на текущей кодовой базе (JS). Следующая версия 7.0 будет полностью переписана на Go для скорости и многопоточности.
Новые возможности:
- Поддержка подпутей импорта, начинающихся с #/ (аналог @/ в бандлерах).
- Добавлены типы для Temporal API (работа с датой/временем) и методов Map.getOrInsert (upsert).
- Встроенная поддержка RegExp.escape.
- Библиотека dom теперь включает итерируемые коллекции по умолчанию (не нужно отдельно подключать dom.iterable).
- Улучшен вывод типов для функций без явного this (меньше контекстной зависимости).
Изменения по умолчанию (Breaking Changes):
-
strict, noUncheckedSideEffectImports теперь true.- module по умолчанию — esnext, target — es2025.
- types по умолчанию — пустой массив [] (нужно явно указывать, например, ["node"]), что ускоряет сборку.
- rootDir теперь равен папке с tsconfig.json.
Устаревшие функции (будут удалены в 7.0):
- Целевая версия es5 и флаг --downlevelIteration.
- Стратегия
moduleResolution: node (заменена на nodenext или bundler).- Форматы модулей: amd, umd, systemjs, none.
- Опция
--outFile (рекомендуется использовать внешние бандлеры).- Синтаксис module для неймспейсов (оставлен только namespace).
- Импорт с asserts (заменен на with).
- Отключение
esModuleInterop и allowSyntheticDefaultImports (теперь всегда включены).Миграция: Для подготовки к TS 7.0 рекомендуется исправить все предупреждения о депрекации в версии 6.0.
Статья - https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/
Microsoft News
Announcing TypeScript 6.0
TypeScript 6.0 is now available! TypeScript 6 is a stepping-stone release, aligning with the upcoming native-speed 7.0 release.
1👍3
#blog
Angular 22: debounce и debounced
Если вы работаете с сигналами в Angular - самое время разобраться, как теперь правильно выполнять debounce без RxJS.
В статье:
- почему в Angular теперь два debounce API:
- чем они отличаются и где какой использовать
- как на самом деле работает debounce «под капотом»
Материал подойдёт для тех, кто уже знаком с Signals, Resource API и сигнальными формами.
Ссылка: https://levelup.gitconnected.com/angular-22-the-power-of-debound-and-debounced-apis-c41e33c0a18e
Angular 22: debounce и debounced
Если вы работаете с сигналами в Angular - самое время разобраться, как теперь правильно выполнять debounce без RxJS.
В статье:
- почему в Angular теперь два debounce API:
debounce() и debounced()- чем они отличаются и где какой использовать
- как на самом деле работает debounce «под капотом»
Материал подойдёт для тех, кто уже знаком с Signals, Resource API и сигнальными формами.
Ссылка: https://levelup.gitconnected.com/angular-22-the-power-of-debound-and-debounced-apis-c41e33c0a18e
Medium
Angular 22 — The Power Of Debounce and Debounced APIs 🔥
Understanding how they work, how they differ, and what happens under the hood
1🔥7❤1