🔥 Уведомление о XSS-проблеме
Проблема затрагивает приложения, использующие Angular Universal для рендеринга на стороне сервера (SSR). Она относится к пакету Critters версий 0.0.17, 0.0.18 и 0.0.19. Версия 0.0.20 содержит исправление.
Angular Universal (в частности,
Если вы зависите от какой-либо из версий, немедленно обновите свои Critters и Angular Universal. Приложения, не использующие Angular Universal, не должны быть затронуты.
👉 https://medium.com/p/95dbae068f
Проблема затрагивает приложения, использующие Angular Universal для рендеринга на стороне сервера (SSR). Она относится к пакету Critters версий 0.0.17, 0.0.18 и 0.0.19. Версия 0.0.20 содержит исправление.
Angular Universal (в частности,
@nguniversal/common
) версий 16.1.0-16.1.1 зависит от этих версий Critters. Уязвимость исправлена в версии 16.1.2. Если вы зависите от какой-либо из версий, немедленно обновите свои Critters и Angular Universal. Приложения, не использующие Angular Universal, не должны быть затронуты.
👉 https://medium.com/p/95dbae068f
👍9🔥4🤡1
✨ Шина между Веб-воркерами и основным потоком
Часто возникают ситуации, когда необходимо эффективно производить сложные вычисления, но выполнение таких задач в основном потоке может привести к замедлению работы приложения.
В этой статье рассмотрена реализация шины, которая облегчает управление данными между веб-воркерами и основным потоком.
👉 https://habr.com/ru/articles/752526/
Часто возникают ситуации, когда необходимо эффективно производить сложные вычисления, но выполнение таких задач в основном потоке может привести к замедлению работы приложения.
В этой статье рассмотрена реализация шины, которая облегчает управление данными между веб-воркерами и основным потоком.
👉 https://habr.com/ru/articles/752526/
👍3🤡3
✨ Представляем auto-signal паттерн
Signals идеально подходят для синхронной реактивности, а observables для асинхронной. Они дополняют друг друга, но в то же время и противоречат друг другу.
В статье рассказано об одном приеме, позволяющем заставить их взаимодействовать друг с другом.
👉 https://dev.to/mfp22/introducing-the-auto-signal-pattern-1a5h
Signals идеально подходят для синхронной реактивности, а observables для асинхронной. Они дополняют друг друга, но в то же время и противоречат друг другу.
В статье рассказано об одном приеме, позволяющем заставить их взаимодействовать друг с другом.
👉 https://dev.to/mfp22/introducing-the-auto-signal-pattern-1a5h
👍11🔥2
✨ Анонс TypeScript 5.2 RC
Начиная с бета-версии, добавили оптимизацию проверки типов и реализацию импорта только типов, независимо от того, включен ли параметр allowImportingTsExtensions.
В период до выхода стабильного релиза не ожидается никаких изменений, кроме исправления критических ошибок.
👉 https://devblogs.microsoft.com/typescript/announcing-typescript-5-2-rc/
Начиная с бета-версии, добавили оптимизацию проверки типов и реализацию импорта только типов, независимо от того, включен ли параметр allowImportingTsExtensions.
В период до выхода стабильного релиза не ожидается никаких изменений, кроме исправления критических ошибок.
👉 https://devblogs.microsoft.com/typescript/announcing-typescript-5-2-rc/
👍6
✨ Обработка ошибок
В Angular мы можем обрабатывать ошибки различными способами, каждый из которых имеет свои плюсы и минусы.
Давайте рассмотрим их.
👉 https://dev.to/this-is-angular/angular-error-handling-101-553
В Angular мы можем обрабатывать ошибки различными способами, каждый из которых имеет свои плюсы и минусы.
Давайте рассмотрим их.
👉 https://dev.to/this-is-angular/angular-error-handling-101-553
👍9🥱4🤔1
🦄 Что я понял, когда написал много тестов
Тестирование — важная часть разработки, которая позволяет писать более качественный и прозрачный код. Тесты могут сильно повлиять на структуру кода приложения, а код, в свою очередь, влияет на структуру тестов.
Глазырин Сергей попытался уместить выводы из опыта, который получил за время написания большого количества тестов.
👉 https://habr.com/ru/companies/tinkoff/articles/753958/
Тестирование — важная часть разработки, которая позволяет писать более качественный и прозрачный код. Тесты могут сильно повлиять на структуру кода приложения, а код, в свою очередь, влияет на структуру тестов.
Глазырин Сергей попытался уместить выводы из опыта, который получил за время написания большого количества тестов.
👉 https://habr.com/ru/companies/tinkoff/articles/753958/
👍6🤔3🤮3
✨ Эволюция сигналов в JavaScript
В последнее время в мире фронтенда наблюдается определенная шумиха вокруг термина "сигналы". Кажется, что за короткое время они появились повсюду, начиная с Preact и заканчивая Angular.
Но они не являются чем-то новым. Даже отдаленно, если учесть, что их корни уходят в исследования конца 1960-х годов.
👉 https://dev.to/this-is-learning/the-evolution-of-signals-in-javascript-8ob
В последнее время в мире фронтенда наблюдается определенная шумиха вокруг термина "сигналы". Кажется, что за короткое время они появились повсюду, начиная с Preact и заканчивая Angular.
Но они не являются чем-то новым. Даже отдаленно, если учесть, что их корни уходят в исследования конца 1960-х годов.
👉 https://dev.to/this-is-learning/the-evolution-of-signals-in-javascript-8ob
🔥8👍3❤1
✨ Сквозь время – ускоряем автотесты
В идеальном мире автотесты должны проходить быстро, чтобы их хотелось запускать как локально, так и в CI. Но почему в большинстве проектов запуск тестов отнимает критически много времени?
Всеволод Золотов рассказал, как Jest помогает писать молниеносные тесты, и рассмотрел ключевые сценарии.
👉 https://habr.com/ru/companies/psb/articles/750286/
В идеальном мире автотесты должны проходить быстро, чтобы их хотелось запускать как локально, так и в CI. Но почему в большинстве проектов запуск тестов отнимает критически много времени?
Всеволод Золотов рассказал, как Jest помогает писать молниеносные тесты, и рассмотрел ключевые сценарии.
👉 https://habr.com/ru/companies/psb/articles/750286/
👍8💊1
✨ Как я переносил блог из CakePHP в Angular
У каждого опытного программиста есть хотя бы одна интересная история, как он работал с легаси кодом.
Александр Серенко поделился опытом переписывания архитектурного чуда, написанного аутсорсерами на CakePHP в 2012 году.
👉 https://habr.com/ru/articles/754884/
У каждого опытного программиста есть хотя бы одна интересная история, как он работал с легаси кодом.
Александр Серенко поделился опытом переписывания архитектурного чуда, написанного аутсорсерами на CakePHP в 2012 году.
👉 https://habr.com/ru/articles/754884/
👍6👎1🔥1
✨ Современные архитектуры с Angular
Angular часто используется для фронтенда крупных, критически важных решений. В таких условиях особенно важно обеспечить простоту сопровождения архитектуры. Однако при этом важно избегать оверинжиниринга.
В этой серии статей показывается, как можно совместить оба требования.
👉 https://www.angulararchitects.io/en/aktuelles/modern-architectures-with-angular-part-1-strategic-design-with-sheriff-and-standalone-components/
Angular часто используется для фронтенда крупных, критически важных решений. В таких условиях особенно важно обеспечить простоту сопровождения архитектуры. Однако при этом важно избегать оверинжиниринга.
В этой серии статей показывается, как можно совместить оба требования.
👉 https://www.angulararchitects.io/en/aktuelles/modern-architectures-with-angular-part-1-strategic-design-with-sheriff-and-standalone-components/
👍26❤1
✨ DOM, DI и View: деревья в Angular
Легко можно спутать дерево инжекторов DI и DOM-дерево непосредственных HTML-элементов и вьюх Angular. Они похожи и иногда имеют прямое соответствие, но далеко не всегда.
В статье рассмотрим различия, научимся держать их в уме и освоим, как можно обойти возможные трудности, связанные с ними.
👉 https://habr.com/ru/companies/tinkoff/articles/756024/
Легко можно спутать дерево инжекторов DI и DOM-дерево непосредственных HTML-элементов и вьюх Angular. Они похожи и иногда имеют прямое соответствие, но далеко не всегда.
В статье рассмотрим различия, научимся держать их в уме и освоим, как можно обойти возможные трудности, связанные с ними.
👉 https://habr.com/ru/companies/tinkoff/articles/756024/
👍15🔥10🤡5❤🔥1🎉1
✨ Рефлексия в JavaScript и TypeScript
В JavaScript из коробки есть способы разобрать в рантайме структуру его значений — определить типы, ключи объектов, получить конструкторы и прототипы. Знание этих механизмов может помочь проектировать более логичные, лаконичные и удобные API.
В статье показывается, на примере CLI-фреймворка, как добавить классам и их полям собственные метаданные при помощи декораторов.
👉 https://habr.com/ru/companies/ruvds/articles/754764/
В JavaScript из коробки есть способы разобрать в рантайме структуру его значений — определить типы, ключи объектов, получить конструкторы и прототипы. Знание этих механизмов может помочь проектировать более логичные, лаконичные и удобные API.
В статье показывается, на примере CLI-фреймворка, как добавить классам и их полям собственные метаданные при помощи декораторов.
👉 https://habr.com/ru/companies/ruvds/articles/754764/
👍6❤3🤡2
✨ Создаем блог с помощью Analog
Создание блога является одним из лучших способов изучения стека веб-разработки, а современные метафреймворки облегчают этот процесс.
В этой статье показывается, как создать статический блог на Angular с помощью Analog.
👉 https://dev.to/analogjs/how-to-build-a-blog-with-analog-and-angular-4pk2
Создание блога является одним из лучших способов изучения стека веб-разработки, а современные метафреймворки облегчают этот процесс.
В этой статье показывается, как создать статический блог на Angular с помощью Analog.
👉 https://dev.to/analogjs/how-to-build-a-blog-with-analog-and-angular-4pk2
💩12👍7🔥1🤡1
✨ Как операторы высшего порядка упрощают код
Чем глубже вы проваливаетесь в RxJS, тем больше самых разных операторов вы узнаете. И со временем добираетесь до потоков потоков. То есть вместо обычных значений такой поток эмитит другие потоки. Такие потоки называют Higher Order Observables.
Игорь Кацуба показал, что в HOO нет ничего мифического, и рассказал в каких случаях вам нужно использовать операторы высшего порядка.
👉 https://habr.com/ru/articles/757202/
Чем глубже вы проваливаетесь в RxJS, тем больше самых разных операторов вы узнаете. И со временем добираетесь до потоков потоков. То есть вместо обычных значений такой поток эмитит другие потоки. Такие потоки называют Higher Order Observables.
Игорь Кацуба показал, что в HOO нет ничего мифического, и рассказал в каких случаях вам нужно использовать операторы высшего порядка.
👉 https://habr.com/ru/articles/757202/
👍15😁3💩3🔥1
✨ Protractor устарел
В конце августа 2023 года Protractor официально завершит долгосрочную поддержку и перейдет в категорию End of Life в сентябре 2023 года.
Для получения более подробной информации о том, как команда Angular работает с устаревшими API и функциями, пожалуйста, ознакомьтесь с этим руководством.
👉 https://medium.com/p/2beac7402ce0
В конце августа 2023 года Protractor официально завершит долгосрочную поддержку и перейдет в категорию End of Life в сентябре 2023 года.
Для получения более подробной информации о том, как команда Angular работает с устаревшими API и функциями, пожалуйста, ознакомьтесь с этим руководством.
👉 https://medium.com/p/2beac7402ce0
👍10🤡4⚡1🔥1🤮1
✨ Объединение signals и observables
Будущее повсеместное распространение сигналов требует от нас создания новых паттернов.
В этой статье попытка объединить observables и signals в одно целое.
👉 https://dev.to/this-is-angular/a-sweet-spot-between-signals-and-observables-4chb
Будущее повсеместное распространение сигналов требует от нас создания новых паттернов.
В этой статье попытка объединить observables и signals в одно целое.
👉 https://dev.to/this-is-angular/a-sweet-spot-between-signals-and-observables-4chb
👍9🥱8🔥1
✨ Как перенести CoreModule на standalone APIs
За standalone компонентами будущее. Angular CLI позволяет генерировать новые приложения с ними из коробки, просто используя флаг
Давайте узнаем, как перенести CoreModule на новое API.
👉 https://angularexperts.io/blog/angular-core-module-standalone-migration
За standalone компонентами будущее. Angular CLI позволяет генерировать новые приложения с ними из коробки, просто используя флаг
--standalone
при выполнении команды ng new
.Давайте узнаем, как перенести CoreModule на новое API.
👉 https://angularexperts.io/blog/angular-core-module-standalone-migration
🤷♂4👍4
✨ Работаем с логированием в Angular
Логирование — довольно распространенная практика. К сожалению, она не так часто встречается в мире фронтенда и часто упоминается в статьях, посвященных бэкенду.
В этой статье объясняется, что такое логирование и показаны способы его реализации.
👉 https://dev.to/this-is-angular/what-is-going-on-here-getting-started-with-logging-in-angular-59k
Логирование — довольно распространенная практика. К сожалению, она не так часто встречается в мире фронтенда и часто упоминается в статьях, посвященных бэкенду.
В этой статье объясняется, что такое логирование и показаны способы его реализации.
👉 https://dev.to/this-is-angular/what-is-going-on-here-getting-started-with-logging-in-angular-59k
👍9🤔2🥱2👏1🎃1🫡1
✨ Standalone компоненты и tree-shaking
Tree-shaking — «встряхивание дерева», удаление неиспользуемого кода из бандла приложения во время сборки.
Анастасия Анисимова рассказала о нюансах tree-shaking, о которых стоит знать при работе со standalone компонентами.
👉 https://habr.com/ru/companies/skyeng/articles/757498/
Tree-shaking — «встряхивание дерева», удаление неиспользуемого кода из бандла приложения во время сборки.
Анастасия Анисимова рассказала о нюансах tree-shaking, о которых стоит знать при работе со standalone компонентами.
👉 https://habr.com/ru/companies/skyeng/articles/757498/
👍21❤5🔥2🤔1
✨ Типизированные формы
До релиза версии 14 не было поддержки строгой типизации форм. Обращение к несуществующему полю должно было вызывать ошибку компиляции Typescript но этого не происходило.
В новых версиях типизация форм появилась, но есть нюансы, о которых дальше в статье.
👉 https://habr.com/ru/articles/760166/
До релиза версии 14 не было поддержки строгой типизации форм. Обращение к несуществующему полю должно было вызывать ошибку компиляции Typescript но этого не происходило.
В новых версиях типизация форм появилась, но есть нюансы, о которых дальше в статье.
👉 https://habr.com/ru/articles/760166/
👍12🥱1