#blog
На недавнем заседании комитета TC39 были одобрены девять предложений по развитию JavaScript, четыре из которых переведены на четвёртую стадию (Stage 4) и войдут в спецификацию ECMAScript (и вскоре будут в baseline). Среди них:
- Array.fromAsync — удобный метод для создания массивов из асинхронных итерируемых объектов без необходимости использовать цикл
- Error.isError — встроенный метод для корректной проверки, является ли значение объектом ошибки, включая кросс-доменные и пользовательские ошибки.
- using-декларация — новое ключевое слово
Кроме того, на других стадиях продвижения достигли:
- Immutable ArrayBuffer (Stage 3) — для безопасного обмена бинарными данными между потоками.
- Math.clamp и Seeded Pseudo Random Numbers (Stage 2) — улучшают математические возможности и воспроизводимость случайных чисел.
Статья: https://socket.dev/blog/tc39-advances-9-proposals
На недавнем заседании комитета TC39 были одобрены девять предложений по развитию JavaScript, четыре из которых переведены на четвёртую стадию (Stage 4) и войдут в спецификацию ECMAScript (и вскоре будут в baseline). Среди них:
- Array.fromAsync — удобный метод для создания массивов из асинхронных итерируемых объектов без необходимости использовать цикл
for await...of.- Error.isError — встроенный метод для корректной проверки, является ли значение объектом ошибки, включая кросс-доменные и пользовательские ошибки.
- using-декларация — новое ключевое слово
using (и await using для асинхронного кода) позволяет явно и надёжно управлять освобождением ресурсов (например, файловых дескрипторов, потоков), обеспечивая автоматическую очистку после выхода из блока.Кроме того, на других стадиях продвижения достигли:
- Immutable ArrayBuffer (Stage 3) — для безопасного обмена бинарными данными между потоками.
- Math.clamp и Seeded Pseudo Random Numbers (Stage 2) — улучшают математические возможности и воспроизводимость случайных чисел.
Статья: https://socket.dev/blog/tc39-advances-9-proposals
Socket
TC39 Advances Array.fromAsync, Error.isError, and Explicit R...
TC39 advances 9 JavaScript proposals, including Array.fromAsync, Error.isError, and Explicit Resource Management, which are now headed into the ECMASc...
👍3
#blog
Интернет в последнее время пестрит мнениями "Stack Overflow сдулся и больше неактуален (в эпоху ИИ)". Но в блог этого ресурса выпустили статью, Stack Overflow представил новую стратегию на конференции WeAreDevelopers 2025. Основная цель — стать самым важным источником информации для технических специалистов в эпоху искусственного интеллекта. Компания делает упор на проверенный человеком контент, чтобы заполнить пробел доверия к ИИ. 83% разработчиков используют ИИ, но 46% не доверяют его результатам.
Ключевые обновления:
- Запуск stackoverflow.ai— ИИ-поиск с опорой на проверенные ответы.
- Новые функции: Community Activity (отслеживание активности) и обновлённый Chat.
- Добавлены Coding Challenges — интерактивные задачи для развития навыков.
Для бизнеса:
- Knowledge Ingestion — интеграция данных из SharePoint, Confluence и других.
- Интеграции с Microsoft Graph, Backstage.io и Moveworks.
- Планируется запуск MCP-сервера для работы с ИИ-моделями.
Обновление бренда:
- Публичная платформа теперь — просто Stack Overflow.
- Корпоративные продукты объединены под брендом Stack Overflow Business.
- Сообщество участвует в выборе нового визуального стиля.
Stack Overflow продолжает развиваться, чтобы оставаться надёжным ресурсом для разработчиков в условиях роста ИИ и снижения качества онлайн-контента.
Читать тут - https://stackoverflow.blog/2025/07/10/a-new-era-of-stack-overflow/
Интернет в последнее время пестрит мнениями "Stack Overflow сдулся и больше неактуален (в эпоху ИИ)". Но в блог этого ресурса выпустили статью, Stack Overflow представил новую стратегию на конференции WeAreDevelopers 2025. Основная цель — стать самым важным источником информации для технических специалистов в эпоху искусственного интеллекта. Компания делает упор на проверенный человеком контент, чтобы заполнить пробел доверия к ИИ. 83% разработчиков используют ИИ, но 46% не доверяют его результатам.
Ключевые обновления:
- Запуск stackoverflow.ai— ИИ-поиск с опорой на проверенные ответы.
- Новые функции: Community Activity (отслеживание активности) и обновлённый Chat.
- Добавлены Coding Challenges — интерактивные задачи для развития навыков.
Для бизнеса:
- Knowledge Ingestion — интеграция данных из SharePoint, Confluence и других.
- Интеграции с Microsoft Graph, Backstage.io и Moveworks.
- Планируется запуск MCP-сервера для работы с ИИ-моделями.
Обновление бренда:
- Публичная платформа теперь — просто Stack Overflow.
- Корпоративные продукты объединены под брендом Stack Overflow Business.
- Сообщество участвует в выборе нового визуального стиля.
Stack Overflow продолжает развиваться, чтобы оставаться надёжным ресурсом для разработчиков в условиях роста ИИ и снижения качества онлайн-контента.
Читать тут - https://stackoverflow.blog/2025/07/10/a-new-era-of-stack-overflow/
stackoverflow.blog
A new era of Stack Overflow - Stack Overflow
👍2
#blog
Сегодня предлагаю посмотреть две короткие статьи про фичи Angular, которые лично я почему-то пропустил в своё время мимо ушей (и возможно я такой не один).
Первое: директива @empty. Не нужно писать
Второе: router-фича withComponentInputBinding(), которая позволяет биндить инпуты компонентов из параметров роутера (например id). Плюс в статье показан полезный хак с алиасингом импорта для лучшего разделения обычных input от роутинговых.
@empty - https://blog.devgenius.io/empty-in-angular-the-modern-way-to-handle-empty-states-820476e0e5a4
withComponentInputBinding() - https://learnwithawais.medium.com/this-one-line-change-makes-angular-route-param-binding-crystal-clear-f143faa51f7e
Сегодня предлагаю посмотреть две короткие статьи про фичи Angular, которые лично я почему-то пропустил в своё время мимо ушей (и возможно я такой не один).
Первое: директива @empty. Не нужно писать
@if (items.length === 0) после итерации @for в темплейте, именно для этого придуман @empty, который сделает всю работу за вас.Второе: router-фича withComponentInputBinding(), которая позволяет биндить инпуты компонентов из параметров роутера (например id). Плюс в статье показан полезный хак с алиасингом импорта для лучшего разделения обычных input от роутинговых.
@empty - https://blog.devgenius.io/empty-in-angular-the-modern-way-to-handle-empty-states-820476e0e5a4
withComponentInputBinding() - https://learnwithawais.medium.com/this-one-line-change-makes-angular-route-param-binding-crystal-clear-f143faa51f7e
Medium
@empty in Angular: The Modern Way to Handle Empty States
Empty states. They’re the subtle, often-overlooked parts of UI that matter more than we realize. That moment when your todo list is fresh…
👍3🔥1
#blog Вышел релиз Ngrx 20.
Новые функции, которые отмечают авторы:
- prependEntity - добавляет сущность в начало массива;
- upsertEntity - обновляет сущность;
- withFeature - позволяет работать со store абстрактно;
- withLinkedState - определяет новые сигналы состояния, которые автоматически вычисляются при изменении исходных сигналов;
- @ngrx/signals/testing - упрощенное тестирование.
https://dev.to/ngrx/announcing-ngrx-v20-the-power-of-events-enhanced-dx-and-a-mature-signalstore-2fdm
Новые функции, которые отмечают авторы:
- prependEntity - добавляет сущность в начало массива;
- upsertEntity - обновляет сущность;
- withFeature - позволяет работать со store абстрактно;
- withLinkedState - определяет новые сигналы состояния, которые автоматически вычисляются при изменении исходных сигналов;
- @ngrx/signals/testing - упрощенное тестирование.
https://dev.to/ngrx/announcing-ngrx-v20-the-power-of-events-enhanced-dx-and-a-mature-signalstore-2fdm
DEV Community
Announcing NgRx v20: The Power of Events, Enhanced DX, and a Mature SignalStore!
👍1
#blog
В связи со скорым уходом Angular animations (сейчас в этом разделе документации висит дисклеймер с советом о переходе на нативные CSS анимации), в версии Angular v20.2.0-next.2 представили новые фичи
- динамический биндинг анимаций
- возможность добавлять несколько анимаций
- использование event listeners
- host binding анимаций
Статья: https://netbasal.medium.com/simplifying-animations-with-angulars-new-native-api-9584b4db316b
В связи со скорым уходом Angular animations (сейчас в этом разделе документации висит дисклеймер с советом о переходе на нативные CSS анимации), в версии Angular v20.2.0-next.2 представили новые фичи
animate.enter и animate.leave. Заточены они под нативные CSS анимации, но упрощают взаимодествие с ними. Среди очевидных плюсов:- динамический биндинг анимаций
- возможность добавлять несколько анимаций
- использование event listeners
- host binding анимаций
Статья: https://netbasal.medium.com/simplifying-animations-with-angulars-new-native-api-9584b4db316b
Medium
Simplifying Animations with Angular’s New Native API
The Angular team created @angular/animations over eight years ago, before modern CSS features like transform and @keyframes were widely…
1👍5❤3
#blog Слышал ранее, но не доходили руки проверить, как в Chrome мокать ответ сервера.
Вот наткнулся на подробную статью о том, как это сделать.
Возможности:
- позволяет переопределять тело ответа от сервера;
- позволяет переопределять HTTP и Websocket заголовки в ответе сервера как для отдельных end point-ов, так и для всех разом через Apply to: *.
Недостатки:
- не позволяет переопределить тело и заголовки запроса;
- не позволяет подменять статус-код ответа;
- не позволяет подменять Websocket-сообщения.
Так что вывод таков: необязательно поднимать свой мок сервер или ставить сниффер).
https://habr.com/ru/companies/sberbank/articles/923888/
Вот наткнулся на подробную статью о том, как это сделать.
Возможности:
- позволяет переопределять тело ответа от сервера;
- позволяет переопределять HTTP и Websocket заголовки в ответе сервера как для отдельных end point-ов, так и для всех разом через Apply to: *.
Недостатки:
- не позволяет переопределить тело и заголовки запроса;
- не позволяет подменять статус-код ответа;
- не позволяет подменять Websocket-сообщения.
Так что вывод таков: необязательно поднимать свой мок сервер или ставить сниффер).
https://habr.com/ru/companies/sberbank/articles/923888/
Хабр
Подмена входящего трафика: скрытые, но крайне полезные фичи браузера Chrome
Всем доброго дня! Я Святослав Ященко, работаю в СберТехе, лидирую команду QA Platform V Kintsugi — это графическая консоль для сопровождения PostgreSQL и Postgres-like СУБД. Развивается вместе с СУБД...
1🔥2
#blog
На 109-м заседании комитет TC39, отвечающий за развитие языка JavaScript, продвинул 11 предложений по различным стадиям стандартизации ECMAScript. Два из них достигли Stage 4 и войдут в следующую официальную версию языка:
* Math.sumPrecise(iterable) — обеспечивает точное суммирование чисел, избегая потери точности из-за округления.
* Методы Uint8Array: toBase64(), fromBase64(), toHex(), fromHex() — добавляют встроенные средства для работы с base64 и шестнадцатеричными строками.
На Stage 3 вышли:
* Iterator.concat(...) — упрощает объединение итераторов.
* Upsert для Map/WeakMap — позволяет безопасно устанавливать значения по умолчанию.
* Immutable ArrayBuffer — добавляет неизменяемые буферы для безопасной и эффективной работы с памятью.
На Stage 2:
* Intl Era/Month Code — поддержка эр и кодов месяцев в формате дат.
* Сохранение конечных нулей в Intl.NumberFormat — улучшает точность форматирования чисел.
* Import Bytes — возможность импорта бинарных файлов как Uint8Array.
Статья: https://socket.dev/blog/tc39-advances-11-proposals-for-math-precision-binary-apis-and-more
На 109-м заседании комитет TC39, отвечающий за развитие языка JavaScript, продвинул 11 предложений по различным стадиям стандартизации ECMAScript. Два из них достигли Stage 4 и войдут в следующую официальную версию языка:
* Math.sumPrecise(iterable) — обеспечивает точное суммирование чисел, избегая потери точности из-за округления.
* Методы Uint8Array: toBase64(), fromBase64(), toHex(), fromHex() — добавляют встроенные средства для работы с base64 и шестнадцатеричными строками.
На Stage 3 вышли:
* Iterator.concat(...) — упрощает объединение итераторов.
* Upsert для Map/WeakMap — позволяет безопасно устанавливать значения по умолчанию.
* Immutable ArrayBuffer — добавляет неизменяемые буферы для безопасной и эффективной работы с памятью.
На Stage 2:
* Intl Era/Month Code — поддержка эр и кодов месяцев в формате дат.
* Сохранение конечных нулей в Intl.NumberFormat — улучшает точность форматирования чисел.
* Import Bytes — возможность импорта бинарных файлов как Uint8Array.
Статья: https://socket.dev/blog/tc39-advances-11-proposals-for-math-precision-binary-apis-and-more
Socket
TC39 Advances 11 Proposals for Math Precision, Binary APIs, ...
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScr...
👍5
#blog Интересный трюк с ленивой загрузкой шрифтов!
В статье используют ленивую загрузку шрифта через createElement('link') и свойства css font-display: swap.
В итоге это позволяет сразу показывать дефолтные шрифты и постепенно их менять на целевые, избегая проблемы FOIT.
Также это повышает метрики: LCP,FID.
Мне кажется, крайне полезный трюк - нужно брать на заметку.
https://angular.love/lazy-loading-fonts-in-angular-how-to-speed-up-content-rendering
В статье используют ленивую загрузку шрифта через createElement('link') и свойства css font-display: swap.
В итоге это позволяет сразу показывать дефолтные шрифты и постепенно их менять на целевые, избегая проблемы FOIT.
Также это повышает метрики: LCP,FID.
Мне кажется, крайне полезный трюк - нужно брать на заметку.
https://angular.love/lazy-loading-fonts-in-angular-how-to-speed-up-content-rendering
Angular.love
Lazy loading fonts in Angular - how to speed up content rendering? - Angular.love
Angular.love - a place for all Angular enthusiasts created to inspire and educate.
👍5
#blog
Angular 20.1 представил экспериментальный Signal Graph (в официальном расширении)— инструмент для отслеживания зависимостей сигналов в компоненте. В DevTools через вкладку Angular можно включить граф и изучить зависимости сигналов по цветам: синий — обычные, зелёный — computed, красный — linked. При клике на сигнал отображается его текущее значение, имя переменной, тип и количество изменений (epoch). При взаимодействии с интерфейсом граф обновляется в реальном времени, а изменяющиеся сигналы мигают. Это помогает анализировать логику без точек остановки.
Статья - https://blog.angulartraining.com/how-to-use-the-new-signal-graph-in-the-angular-dev-tools-b5b8a0ace6dd
Angular 20.1 представил экспериментальный Signal Graph (в официальном расширении)— инструмент для отслеживания зависимостей сигналов в компоненте. В DevTools через вкладку Angular можно включить граф и изучить зависимости сигналов по цветам: синий — обычные, зелёный — computed, красный — linked. При клике на сигнал отображается его текущее значение, имя переменной, тип и количество изменений (epoch). При взаимодействии с интерфейсом граф обновляется в реальном времени, а изменяющиеся сигналы мигают. Это помогает анализировать логику без точек остановки.
Статья - https://blog.angulartraining.com/how-to-use-the-new-signal-graph-in-the-angular-dev-tools-b5b8a0ace6dd
Medium
How to use the new Signal Graph in the Angular Dev Tools?
Angular 20.1 introduced a new experimental feature that displays a dynamic Signal graph of all Signal dependencies for a given component.
👍2
#blog Вышел минорный релиз Angular 20.2.0
Главное что можно выделить:
- Zoneless стал стабильным;
- Animations deprecated;
- Поддержка typenoscript 5.9.
https://angular.love/angular-20-2-the-recent-changes
Главное что можно выделить:
- Zoneless стал стабильным;
- Animations deprecated;
- Поддержка typenoscript 5.9.
https://angular.love/angular-20-2-the-recent-changes
Angular.love
Angular 20.2 - the recent changes - Angular.love
Angular.love - a place for all Angular enthusiasts created to inspire and educate.
🔥5
#blog
На сегодня - большая и глубокая статья о семантическом HTML. Автор рассказывает о разных аспектах и объясняет, почему семантика важна и почему плохо городить страницу из сплошных div. Краткие тезисы:
- Семантический HTML выражает смысл, а не только структуру.
Теги вроде
- Бессмысленная разметка вредит доступности.
Скринридеры и голосовые интерфейсы не могут правильно интерпретировать пирамиду из
- Семантика улучшает производительность.
Четкая структура DOM ускоряет рендеринг и упрощает работу с анимациями.
- Большие и сложные DOM-деревья замедляют страницу.
Чем больше узлов — тем дольше браузер обрабатывает layout, style и paint.
- Утилитарные классы увеличивают дублирование CSS.
Это замедляет перерасчёт стилей и увеличивает размер файлов.
- Случайные имена классов мешают кэшированию и тестированию.
Например,
- Семантика помогает AI-агентам и поисковым системам.
Четкая разметка упрощает извлечение данных и индексацию.
- Семантический HTML — основа надежности.
Даже при сбое JS или стилей, он обеспечивает минимальную функциональность.
- Это не "чистый код" — это инфраструктура.
Семантический HTML — базовый элемент современного веба.
Статья: https://www.jonoalderson.com/conjecture/why-semantic-html-still-matters/
На сегодня - большая и глубокая статья о семантическом HTML. Автор рассказывает о разных аспектах и объясняет, почему семантика важна и почему плохо городить страницу из сплошных div. Краткие тезисы:
- Семантический HTML выражает смысл, а не только структуру.
Теги вроде
<article>, <nav>, <header> говорят браузерам и агентам, что это за контент.- Бессмысленная разметка вредит доступности.
Скринридеры и голосовые интерфейсы не могут правильно интерпретировать пирамиду из
<div>.- Семантика улучшает производительность.
Четкая структура DOM ускоряет рендеринг и упрощает работу с анимациями.
- Большие и сложные DOM-деревья замедляют страницу.
Чем больше узлов — тем дольше браузер обрабатывает layout, style и paint.
- Утилитарные классы увеличивают дублирование CSS.
Это замедляет перерасчёт стилей и увеличивает размер файлов.
- Случайные имена классов мешают кэшированию и тестированию.
Например,
.jsx-392hf или .tw-abc123 затрудняют анализ и повторное использование.- Семантика помогает AI-агентам и поисковым системам.
Четкая разметка упрощает извлечение данных и индексацию.
- Семантический HTML — основа надежности.
Даже при сбое JS или стилей, он обеспечивает минимальную функциональность.
- Это не "чистый код" — это инфраструктура.
Семантический HTML — базовый элемент современного веба.
Статья: https://www.jonoalderson.com/conjecture/why-semantic-html-still-matters/
Jono Alderson
Why semantic HTML still matters
If you want to build for performance, accessibility, discoverability, or resilience, you must start with HTML that means something.
#blog
Интересная статья о странностях CSS, которые мало кому известны. Что внутри:
- В
- В
-
- Во флекс-контейнере все элементы могут принять наибольшее значение
-
-
Статья - https://habr.com/ru/companies/ruvds/articles/937094/
Интересная статья о странностях CSS, которые мало кому известны. Что внутри:
- В
calc() ноль должен быть с единицей измерения (например, `0px`), иначе значение не применится.- В
calc() сложение/вычитание работает только между совместимыми типами; умножение/деление требует числового операнда.-
aspect-ratio может нарушаться, если контент требует больше места.- Во флекс-контейнере все элементы могут принять наибольшее значение
aspect-ratio, если не ограничить их через min-height: 0 или overflow: auto.-
:nth-child(n of selector) выбирает n-й элемент из всех, подходящих под любой селектор в списке.-
position: absolute в грид-контейнере позиционируется относительно ячейки, заданной grid-column и grid-row, а не родителя.Статья - https://habr.com/ru/companies/ruvds/articles/937094/
Хабр
«Великолепный» CSS. Коллекция странностей CSS, на которые я потратил кучу времени
Привет, Хабр! CSS часто преподносит сюрпризы, способные запутать даже опытных разработчиков. Я понимаю их раздражение. Тут всё закономерно. Однако, несмотря на потраченные нервы, мне нравится CSS....
❤2
#blog
В V8 добились более чем двукратного повышения производительности JSON.stringify!
Команда улучшила текущий алгоритм преобразования.
Если данные подходят под критерии, то они форматируется по-новому, иначе - по-старому.
Условия, при которых сработает улучшенный алгоритм:
- запуск JSON.stringify() с одним аргументом;
- объект не должен иметь переопределенного метода .toJSON();
- отсутствие индексированных свойств у объектов, например, {0: "hello"};
- строки должны быть простыми (например, в них не должно быть emoji).
Кажется, что под эти правила подходит 99% кода)
Обновление доступно начиная с Chrome 138.
https://v8.dev/blog/json-stringify
В V8 добились более чем двукратного повышения производительности JSON.stringify!
Команда улучшила текущий алгоритм преобразования.
Если данные подходят под критерии, то они форматируется по-новому, иначе - по-старому.
Условия, при которых сработает улучшенный алгоритм:
- запуск JSON.stringify() с одним аргументом;
- объект не должен иметь переопределенного метода .toJSON();
- отсутствие индексированных свойств у объектов, например, {0: "hello"};
- строки должны быть простыми (например, в них не должно быть emoji).
Кажется, что под эти правила подходит 99% кода)
Обновление доступно начиная с Chrome 138.
https://v8.dev/blog/json-stringify
v8.dev
How we made JSON.stringify more than twice as fast · V8
This post explains our recent effort to improve JSON.stringify performance
🔥8
#blog Интересная статья, показывающая разницу между Observables и Signal.
Автор на пальцах показывает разницу между pull и push моделями и область применения каждой из них.
Понимание этого будет полезно при разработке архитектуры.
https://dev.to/lcsga/angular-signals-dont-replace-observables-pull-vs-push-49l7
Автор на пальцах показывает разницу между pull и push моделями и область применения каждой из них.
Понимание этого будет полезно при разработке архитектуры.
https://dev.to/lcsga/angular-signals-dont-replace-observables-pull-vs-push-49l7
DEV Community
Angular Signals Don't Replace Observables: Pull vs. Push
Recently, we've seen many developers trying to replace RxJS by creating their own "operators" for...
👍7
#blog
ESLint получил поддержку многопоточного линтинга через флаг
Статья - https://socket.dev/blog/eslint-adds-support-for-parallel-linting
Официальный блог - https://eslint.org/blog/2025/08/eslint-v9.34.0-released/
ESLint получил поддержку многопоточного линтинга через флаг
--concurrency, который ускоряет работу за счёт распределения задач по ядрам процессора. Флаг --concurrency=auto выбирает оптимальное число потоков автоматически. Обновление, ждавшее своего часа почти 10 лет, позволяет сократить время линтинга в крупных проектах на 30–60%, а в некоторых случаях — более чем в 3 раза. Доступно для использования с ESLint v9.34.0Статья - https://socket.dev/blog/eslint-adds-support-for-parallel-linting
Официальный блог - https://eslint.org/blog/2025/08/eslint-v9.34.0-released/
Socket
ESLint Adds Support for Parallel Linting, Closing 10-Year-Ol...
ESLint now supports parallel linting with a new --concurrency flag, delivering major speed gains and closing a 10-year-old feature request.
#blog
У меня вышла статья на Хабре (моя первая), под эгидой Т-Банка, разумеется.
Повествую о спецификации CSS Color 4 и новых цветовых пространствах, которые она нам приносит. Поддержка популярными браузерами уже давно есть, поэтому пользоваться всем этим можно без особых опасений.
Читать здесь - https://habr.com/ru/companies/tbank/articles/948450/
У меня вышла статья на Хабре (моя первая), под эгидой Т-Банка, разумеется.
Повествую о спецификации CSS Color 4 и новых цветовых пространствах, которые она нам приносит. Поддержка популярными браузерами уже давно есть, поэтому пользоваться всем этим можно без особых опасений.
Читать здесь - https://habr.com/ru/companies/tbank/articles/948450/
Хабр
Отправиться на тот цвет: CSS Color 4. Как добавить яркие краски в серые веб-будни
Привет! Меня зовут Антон Романов, я старший Angular-разработчик в Т-Банке, занимаюсь платежными формами T-Pay QR. Поведаю о цветовых пространствах спецификации CSS Color 4, объясню их уникальность и...
1❤4🔥3
#blog
🚀 Angular анонс: сигнальные формы — будущее уже здесь!
Недавно в Angular влили экспериментальную ветку Signal Forms — одной из самых ожидаемых новинок.
Это обновление обещает упростить работу с формами, убрав боль, знакомую каждому Angular-разработчику:
* громоздкие FormGroup и FormControl
* ручные подписки на valueChanges
* дублирование валидаторов
* бесконечные блоки if/else для вывода сообщений об ошибках
Формы теперь работают напрямую со сигналами, делая код чище и лаконичнее. И это только начало!
О том, как это работает с реальным примером, читайте в статье: https://medium.com/@schnabelelisa0/angular-signal-forms-the-most-awaited-feature-is-here-161fd722f573
🚀 Angular анонс: сигнальные формы — будущее уже здесь!
Недавно в Angular влили экспериментальную ветку Signal Forms — одной из самых ожидаемых новинок.
Это обновление обещает упростить работу с формами, убрав боль, знакомую каждому Angular-разработчику:
* громоздкие FormGroup и FormControl
* ручные подписки на valueChanges
* дублирование валидаторов
* бесконечные блоки if/else для вывода сообщений об ошибках
Формы теперь работают напрямую со сигналами, делая код чище и лаконичнее. И это только начало!
О том, как это работает с реальным примером, читайте в статье: https://medium.com/@schnabelelisa0/angular-signal-forms-the-most-awaited-feature-is-here-161fd722f573
Medium
Angular Signal Forms: The most awaited feature is here
A few days ago, something exciting happened in the Angular world: the experimental Signal Forms feature branch was merged into Angular’s…
🔥6❤1
#blog
Подробная и понятная статья, способная закрыть пробелы знаний в области делегирования событий в JS (либо освежить в памяти). Тезисно:
- Описан механизм всплытия событий, и три их фазы: захвата, цели и всплытия, что лежит в основе делегирования.
- Делегирование улучшает производительность, упрощает поддержку кода и корректно работает с динамически создаваемыми элементами.
- Описаны частые ошибки: путаница между
- Рассмотрены нюансы работы событий в Shadow DOM, а также события, которые не всплывают (focus, blur, mouseenter, mouseleave), и способы их обработки.
- Приведены примеры реализации делегирования во фреймворках: React (синтетические события), Vue, Svelte и Angular.
Статья: https://habr.com/ru/companies/timeweb/articles/940722/
Подробная и понятная статья, способная закрыть пробелы знаний в области делегирования событий в JS (либо освежить в памяти). Тезисно:
- Описан механизм всплытия событий, и три их фазы: захвата, цели и всплытия, что лежит в основе делегирования.
- Делегирование улучшает производительность, упрощает поддержку кода и корректно работает с динамически создаваемыми элементами.
- Описаны частые ошибки: путаница между
event.target и event.currentTarget, некорректное использование stopPropagation().- Рассмотрены нюансы работы событий в Shadow DOM, а также события, которые не всплывают (focus, blur, mouseenter, mouseleave), и способы их обработки.
- Приведены примеры реализации делегирования во фреймворках: React (синтетические события), Vue, Svelte и Angular.
Статья: https://habr.com/ru/companies/timeweb/articles/940722/
Хабр
Делегирование событий в JavaScript: когда обычного всплытия недостаточно
По мере роста фронтенд-приложений управление пользовательскими взаимодействиями становится все более важным. Добавление обработчика событий на каждый интерактивный элемент — плохая практика: это...
❤2
#blog
Для тех, кто подумывает об обновлении TypeScript до 5.9, но не видит в этом больших плюсов - данная статья, заголовок которой гласит "Обновляться стоит". Если совсем кратко:
- Новый
- Производительность улучшена на 11% за счёт кэширования сложных типов — быстрее проверка, отзывчивее IDE, компактнее сборки.
-
- Раскрываемые подсказки (expandable hovers) позволяют исследовать сложные типы прямо в редакторе, не теряя контекст.
- Философия обновления — улучшать повседневный опыт, а не добавлять громкие фичи. Главное — удобство, скорость и меньшая нагрузка на разработчика.
Статья: https://blog.logrocket.com/upgrade-to-typenoscript-5-9/
Для тех, кто подумывает об обновлении TypeScript до 5.9, но не видит в этом больших плюсов - данная статья, заголовок которой гласит "Обновляться стоит". Если совсем кратко:
- Новый
tsc --init генерирует минималистичный конфиг с strict: true по умолчанию — теперь строгая типизация это стандарт.- Производительность улучшена на 11% за счёт кэширования сложных типов — быстрее проверка, отзывчивее IDE, компактнее сборки.
-
import defer откладывает загрузку тяжёлых модулей, но пока требует поддержки сборщика — работает только с namespace-импортами.- Раскрываемые подсказки (expandable hovers) позволяют исследовать сложные типы прямо в редакторе, не теряя контекст.
- Философия обновления — улучшать повседневный опыт, а не добавлять громкие фичи. Главное — удобство, скорость и меньшая нагрузка на разработчика.
Статья: https://blog.logrocket.com/upgrade-to-typenoscript-5-9/
LogRocket Blog
Yes, you should upgrade to TypeScript 5.9 — here's why - LogRocket Blog
Explore the key features of TypeScript 5.9, including the redesigned tsc --init command, import defer syntax, expandable hovers, and more.
❤3
#blog
Сигналы в Angular часто вызывают путаницу из-за того, что разработчики пытаются мыслить в терминах RxJS. Мы ожидаем, что сигналы будут вести себя как потоки и автоматически обновлять DOM, но это совсем не так.
Вернёмся к основам и подробно разберём:
- почему сигналы — не Observables, и как правильно мыслить в «сигнальной» парадигме;
- как на самом деле работают computed и effect, и почему путать их — частая ошибка;
- что важно знать о мутабельности и методах .set() / .update();
- когда сигналы упрощают жизнь, а когда лучше остаться с RxJS.
Автор помогает переосмыслить сигналы не как «упрощённые стримы», а как другой способ управления состоянием в Angular — понятный, предсказуемый и, при правильном использовании, действительно удобный.
Ссылка на статью: https://medium.com/@julias3/the-most-misunderstood-concept-in-angular-signals-1929f5c27c13
Сигналы в Angular часто вызывают путаницу из-за того, что разработчики пытаются мыслить в терминах RxJS. Мы ожидаем, что сигналы будут вести себя как потоки и автоматически обновлять DOM, но это совсем не так.
Вернёмся к основам и подробно разберём:
- почему сигналы — не Observables, и как правильно мыслить в «сигнальной» парадигме;
- как на самом деле работают computed и effect, и почему путать их — частая ошибка;
- что важно знать о мутабельности и методах .set() / .update();
- когда сигналы упрощают жизнь, а когда лучше остаться с RxJS.
Автор помогает переосмыслить сигналы не как «упрощённые стримы», а как другой способ управления состоянием в Angular — понятный, предсказуемый и, при правильном использовании, действительно удобный.
Ссылка на статью: https://medium.com/@julias3/the-most-misunderstood-concept-in-angular-signals-1929f5c27c13
Medium
The Most Misunderstood Concept in Angular Signals
Why Your Mental Model of Signals Is Probably Wrong (and What to Do About It)
🔥5
#blog
Вышла Node.js 25.0 — промежуточная версия (не LTS), поддержка до июня 2026.
- Node.js 24.x (LTS) поддерживается до апреля 2028, 22.x — до апреля 2027, 20.x — до апреля 2026.
- V8 обновлён до 14.1 (Chromium 141): ускорен
- Добавлена опция
-
-
- WebAssembly поддерживает JSPI — позволяет вызывать асинхронные Web API из синхронного кода.
- Добавлена опция
- Реализовано встроенное профилирование нагрузки на CPU.
- Обновлён npm до версии 11.6.2.
- Удалён
Статья - https://habr.com/ru/news/957966/
Вышла Node.js 25.0 — промежуточная версия (не LTS), поддержка до июня 2026.
- Node.js 24.x (LTS) поддерживается до апреля 2028, 22.x — до апреля 2027, 20.x — до апреля 2026.
- V8 обновлён до 14.1 (Chromium 141): ускорен
JSON.stringify, оптимизированы WebAssembly и JIT, добавлены методы для base64/hex-преобразований Uint8Array.- Добавлена опция
--allow-net в Permission Model — без неё сетевые операции блокируются с ошибкой ERR_ACCESS_DENIED.-
API Web Storage (localStorage, sessionStorage) включён по умолчанию, статус «экспериментальный» снят.-
ErrorEvent стал глобальным — доступен без импорта, совместим с браузерами.- WebAssembly поддерживает JSPI — позволяет вызывать асинхронные Web API из синхронного кода.
- Добавлена опция
NODE_COMPILE_CACHE_RELATIVE_PATH — кэш компиляции работает при переносе проекта благодаря относительным путям.- Реализовано встроенное профилирование нагрузки на CPU.
- Обновлён npm до версии 11.6.2.
- Удалён
SlowBuffer из-за уязвимостей — вместо него использовать Buffer.allocUnsafeSlow().Статья - https://habr.com/ru/news/957966/
Хабр
Вышла Node.js 25
В середине октября 2025 года состоялся релиз JavaScript‑платформы Node.js 25 . Платформа Node.js может быть использована как для серверного сопровождения работы веб‑приложений, так и...
❤4