🦄 Nx Generator: имба или не стоит разбираться?
Nx Generator — инструмент от Nx, который отвечает за шаблонную генерацию кода в Nx workspace.
Дмитрий Данилов показал, что нужно установить для запуска генераторов, как писать собственные генераторы и создавать с ними шаблонные файлы.
👉 https://habr.com/ru/companies/tinkoff/articles/747608/
Nx Generator — инструмент от Nx, который отвечает за шаблонную генерацию кода в Nx workspace.
Дмитрий Данилов показал, что нужно установить для запуска генераторов, как писать собственные генераторы и создавать с ними шаблонные файлы.
👉 https://habr.com/ru/companies/tinkoff/articles/747608/
👍14🔥1🥱1
✨ Мультибрендинг сайта
Все больше компаний сталкиваются с необходимостью создания нескольких брендов. Такая задача может быть связана с различными целевыми аудиториями пользователей, регионами или продуктами.
Дмитрий Дружков рассказал, как добавить несколько брендов и реализовать разную для них логику.
👉 https://habr.com/ru/articles/748240/
Все больше компаний сталкиваются с необходимостью создания нескольких брендов. Такая задача может быть связана с различными целевыми аудиториями пользователей, регионами или продуктами.
Дмитрий Дружков рассказал, как добавить несколько брендов и реализовать разную для них логику.
👉 https://habr.com/ru/articles/748240/
👍13👎1👏1
✨ Упрощаем работу с Angular
RxJS — прекрасно подходит для управления асинхронными потоками событий, но сложен для синхронизации состояний.
Angular нужен был собственный реактивный примитив, и из всех возможных вариантов сигналы оказались лучшим выбором.
👉 https://dev.to/mfp22/signals-make-angular-much-easier-3k9
RxJS — прекрасно подходит для управления асинхронными потоками событий, но сложен для синхронизации состояний.
Angular нужен был собственный реактивный примитив, и из всех возможных вариантов сигналы оказались лучшим выбором.
👉 https://dev.to/mfp22/signals-make-angular-much-easier-3k9
👍16👎3🔥2🤔1
✨ RxJS может спасти вашу кодовую базу
В предыдущем посте мы видели, что происходит, когда RxJS используется для синхронной реактивности.
Теперь попробуем использовать сигналы для реализации асинхронного поведения и сравним с решением на RxJS.
👉 https://dev.to/mfp22/rxjs-can-save-your-codebase-49fi
В предыдущем посте мы видели, что происходит, когда RxJS используется для синхронной реактивности.
Теперь попробуем использовать сигналы для реализации асинхронного поведения и сравним с решением на RxJS.
👉 https://dev.to/mfp22/rxjs-can-save-your-codebase-49fi
👍8🔥2🤨2👎1
✨ Вывод типов в TypeScript
Давайте решим небольшую практическую задачу.
У нас есть массив строковых значений. Необходимо отобразить их на странице, а также убедиться, чтобы эти данные были строго типизированы.
👉 https://habr.com/ru/articles/750074/
Давайте решим небольшую практическую задачу.
У нас есть массив строковых значений. Необходимо отобразить их на странице, а также убедиться, чтобы эти данные были строго типизированы.
👉 https://habr.com/ru/articles/750074/
👍7🤔3🥱2
✨ Явное управление ресурсами
Одной из самых интересных новинок JavaScript и TypeScript стало явное управление ресурсами. Синтаксис
Илья Поздняков на примерах разобрал новую фичу.
👉 https://habr.com/ru/companies/ruvds/articles/745904/
Одной из самых интересных новинок JavaScript и TypeScript стало явное управление ресурсами. Синтаксис
using
позволяет писать менее многословный код.Илья Поздняков на примерах разобрал новую фичу.
👉 https://habr.com/ru/companies/ruvds/articles/745904/
🤯6👍5🥱1
🦄 Web API для Angular
Веб — богатая экосистема с массой API, но их сложно использовать в Angular из-за разницы парадигм нативного JavaScript и декларативного Angular.
Web API для Angular — это опенсорс-инициатива, которая облегчает использование нативных API в Angular.
👉 https://habr.com/ru/companies/tinkoff/articles/750788/
Веб — богатая экосистема с массой API, но их сложно использовать в Angular из-за разницы парадигм нативного JavaScript и декларативного Angular.
Web API для Angular — это опенсорс-инициатива, которая облегчает использование нативных API в Angular.
👉 https://habr.com/ru/companies/tinkoff/articles/750788/
🔥16👍7❤1
🍪 Как работает Evercookie в 2023 году
Основная цель evercookie — записать во все доступные хранилища браузера уникальный идентификатор. Если идентификатор удаляется из какого либо хранилища, то значение восстанавливается с помощью чтения значения из другого.
Александр Серенко разобрал подходы, которые помогают восстановить идентификатор пользователя.
👉 https://habr.com/ru/articles/750856/
Основная цель evercookie — записать во все доступные хранилища браузера уникальный идентификатор. Если идентификатор удаляется из какого либо хранилища, то значение восстанавливается с помощью чтения значения из другого.
Александр Серенко разобрал подходы, которые помогают восстановить идентификатор пользователя.
👉 https://habr.com/ru/articles/750856/
👍6🔥1
✨ Разбираемся с адаптивом
Большая часть трафика проходит через мобильные устройства. Кто-то решает эту проблему отдельным приложением, а кто-то адаптирует свои продукты под мобильные разрешения.
В статье рассказывается о адаптивном варианте.
👉 https://habr.com/ru/companies/nspk/articles/750970/
Большая часть трафика проходит через мобильные устройства. Кто-то решает эту проблему отдельным приложением, а кто-то адаптирует свои продукты под мобильные разрешения.
В статье рассказывается о адаптивном варианте.
👉 https://habr.com/ru/companies/nspk/articles/750970/
👎9👍4
✨ Принцип работы Angular Signals
Сигнал — это значение, которое является «реактивным», то есть оно может уведомлять заинтересованных потребителей об изменении. Существует много разных реализаций этой концепции с разными схемами того, как эти уведомления подписываются и распространяются, как работает очистка и отмена подписки, как отслеживаются зависимости и т.д.
В данной статье описывается алгоритм, лежащий в основе конкретной реализации паттерна «сигнал».
👉 https://habr.com/ru/articles/751614/
Сигнал — это значение, которое является «реактивным», то есть оно может уведомлять заинтересованных потребителей об изменении. Существует много разных реализаций этой концепции с разными схемами того, как эти уведомления подписываются и распространяются, как работает очистка и отмена подписки, как отслеживаются зависимости и т.д.
В данной статье описывается алгоритм, лежащий в основе конкретной реализации паттерна «сигнал».
👉 https://habr.com/ru/articles/751614/
👍13🔥7
✨ Как генерировать модели интерфейсов на основе спецификации
API First — методология разработки ПО, которая рассматривает API в качестве основания или конечного продукта, вокруг которого выстраиваются организационные процессы и сама разработка.
В статье разобрано несколько инструментов кодогенерации, и типовые схемы реализации инфраструктуры.
👉 https://habr.com/ru/companies/simbirsoft/articles/751406/
API First — методология разработки ПО, которая рассматривает API в качестве основания или конечного продукта, вокруг которого выстраиваются организационные процессы и сама разработка.
В статье разобрано несколько инструментов кодогенерации, и типовые схемы реализации инфраструктуры.
👉 https://habr.com/ru/companies/simbirsoft/articles/751406/
👍5
✨ Внедрение зависимостей простыми словами
DI — процесс предоставления внешней зависимости программному компоненту.
Данила Егоренко поделился опытом изучения внедрения зависимостей.
👉 https://habr.com/ru/articles/751422/
DI — процесс предоставления внешней зависимости программному компоненту.
Данила Егоренко поделился опытом изучения внедрения зависимостей.
👉 https://habr.com/ru/articles/751422/
👍11🤮8
🔥 Уведомление о 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