home.social

#rxjs — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #rxjs, aggregated by home.social.

fetched live
  1. Разработка TypeScript-библиотеки для построения реактивных графов распространения и обработки данных

    Как построить гибкий реактивный граф обработки данных, где узлы изолированы друг от друга, а связи между ними строятся автоматически на основе их возможностей? Рассказываю о разработке Transferum — легковесной TypeScript-библиотеки для реактивных потоков. Внутри: разбор системы вычислимых типов для проверки контрактов в compile-time, управление маршрутизацией данных в графе и примеры построения динамических пайплайнов для IoT-датчиков и панелей управления.

    habr.com/ru/articles/1061630/

    #typescript #frp #rxjs #reactive_programming #data_flow #open_source #архитектура_по

  2. Разработка TypeScript-библиотеки для построения реактивных графов распространения и обработки данных

    Как построить гибкий реактивный граф обработки данных, где узлы изолированы друг от друга, а связи между ними строятся автоматически на основе их возможностей? Рассказываю о разработке Transferum — легковесной TypeScript-библиотеки для реактивных потоков. Внутри: разбор системы вычислимых типов для проверки контрактов в compile-time, управление маршрутизацией данных в графе и примеры построения динамических пайплайнов для IoT-датчиков и панелей управления.

    habr.com/ru/articles/1061630/

    #typescript #frp #rxjs #reactive_programming #data_flow #open_source #архитектура_по

  3. Разработка TypeScript-библиотеки для построения реактивных графов распространения и обработки данных

    Как построить гибкий реактивный граф обработки данных, где узлы изолированы друг от друга, а связи между ними строятся автоматически на основе их возможностей? Рассказываю о разработке Transferum — легковесной TypeScript-библиотеки для реактивных потоков. Внутри: разбор системы вычислимых типов для проверки контрактов в compile-time, управление маршрутизацией данных в графе и примеры построения динамических пайплайнов для IoT-датчиков и панелей управления.

    habr.com/ru/articles/1061630/

    #typescript #frp #rxjs #reactive_programming #data_flow #open_source #архитектура_по

  4. Как я перешёл с React на Angular и не пожалел

    Когда я говорю, что перешёл с React на Angular, на меня смотрят примерно так же, как если бы я сказал, что добровольно переехал из Амстердама куда-нибудь в Челябинск. С непониманием и вопросом «а зачем». Если открыть типичный канал про разработку, там будет React, Next.js, React Native, снова React. Джуны учат его как первый фреймворк, мидлы обычно выносят в резюме жирным шрифтом. Angular воспринимается как что-то невероятно сложное, для мега-приложений масштаба «строим город на Луне» и бэкендеров, которым не повезло. Я тоже так думал. У меня за плечами был React, я понимал компонентный подход, умел работать с хуками, знал экосистему. И тут Angular. Готовых инструкций, как перейти с React на Angular, в сети практически нет. Зато есть тысячи статей про обратный путь. Пришлось разбираться самому, и вот что из этого вышло.

    habr.com/ru/companies/centicor

    #angular #react #фронтенд #TypeScript #RxJS #nx #ооп #архитектура_фронтенда #сравнение_фреймворков #личный_опыт

  5. Как я перешёл с React на Angular и не пожалел

    Когда я говорю, что перешёл с React на Angular, на меня смотрят примерно так же, как если бы я сказал, что добровольно переехал из Амстердама куда-нибудь в Челябинск. С непониманием и вопросом «а зачем». Если открыть типичный канал про разработку, там будет React, Next.js, React Native, снова React. Джуны учат его как первый фреймворк, мидлы обычно выносят в резюме жирным шрифтом. Angular воспринимается как что-то невероятно сложное, для мега-приложений масштаба «строим город на Луне» и бэкендеров, которым не повезло. Я тоже так думал. У меня за плечами был React, я понимал компонентный подход, умел работать с хуками, знал экосистему. И тут Angular. Готовых инструкций, как перейти с React на Angular, в сети практически нет. Зато есть тысячи статей про обратный путь. Пришлось разбираться самому, и вот что из этого вышло.

    habr.com/ru/companies/centicor

    #angular #react #фронтенд #TypeScript #RxJS #nx #ооп #архитектура_фронтенда #сравнение_фреймворков #личный_опыт

  6. Как я перешёл с React на Angular и не пожалел

    Когда я говорю, что перешёл с React на Angular, на меня смотрят примерно так же, как если бы я сказал, что добровольно переехал из Амстердама куда-нибудь в Челябинск. С непониманием и вопросом «а зачем». Если открыть типичный канал про разработку, там будет React, Next.js, React Native, снова React. Джуны учат его как первый фреймворк, мидлы обычно выносят в резюме жирным шрифтом. Angular воспринимается как что-то невероятно сложное, для мега-приложений масштаба «строим город на Луне» и бэкендеров, которым не повезло. Я тоже так думал. У меня за плечами был React, я понимал компонентный подход, умел работать с хуками, знал экосистему. И тут Angular. Готовых инструкций, как перейти с React на Angular, в сети практически нет. Зато есть тысячи статей про обратный путь. Пришлось разбираться самому, и вот что из этого вышло.

    habr.com/ru/companies/centicor

    #angular #react #фронтенд #TypeScript #RxJS #nx #ооп #архитектура_фронтенда #сравнение_фреймворков #личный_опыт

  7. Пишем движок для блога на Rust

    Недавно я решил завести собственный блог. Сначала посмотрел в сторону SSG, но они показались мне не слишком удобными для того сценария, который я хотел получить. Затем попробовал несколько CMS, однако быстро упёрся в другую проблему: мой сервер оказался слишком слабым для большинства современных решений. В итоге ни одно из готовых решений так и не смогло закрыть все мои требования одновременно. Так и появилась идея сделать небольшую файловую CMS на Rust, которая не требует базы данных, не потребляет много памяти и при этом остаётся достаточно гибкой для повседневного использования. Со временем идея небольшого блогового движка разрослась в полноценную CMS с SSR, виртуальной файловой системой, поддержкой локализации, визуальным редактором статей и горячей перезагрузкой контента. В этой статье я постараюсь показать, как всё это устроено изнутри.

    habr.com/ru/articles/1041324/

    #rust #tokio #ssr #vfs #typescript #rxjs #jwt #fluent #kdl

  8. Пишем движок для блога на Rust

    Недавно я решил завести собственный блог. Сначала посмотрел в сторону SSG, но они показались мне не слишком удобными для того сценария, который я хотел получить. Затем попробовал несколько CMS, однако быстро упёрся в другую проблему: мой сервер оказался слишком слабым для большинства современных решений. В итоге ни одно из готовых решений так и не смогло закрыть все мои требования одновременно. Так и появилась идея сделать небольшую файловую CMS на Rust, которая не требует базы данных, не потребляет много памяти и при этом остаётся достаточно гибкой для повседневного использования. Со временем идея небольшого блогового движка разрослась в полноценную CMS с SSR, виртуальной файловой системой, поддержкой локализации, визуальным редактором статей и горячей перезагрузкой контента. В этой статье я постараюсь показать, как всё это устроено изнутри.

    habr.com/ru/articles/1041324/

    #rust #tokio #ssr #vfs #typescript #rxjs #jwt #fluent #kdl

  9. Пишем движок для блога на Rust

    Недавно я решил завести собственный блог. Сначала посмотрел в сторону SSG, но они показались мне не слишком удобными для того сценария, который я хотел получить. Затем попробовал несколько CMS, однако быстро упёрся в другую проблему: мой сервер оказался слишком слабым для большинства современных решений. В итоге ни одно из готовых решений так и не смогло закрыть все мои требования одновременно. Так и появилась идея сделать небольшую файловую CMS на Rust, которая не требует базы данных, не потребляет много памяти и при этом остаётся достаточно гибкой для повседневного использования. Со временем идея небольшого блогового движка разрослась в полноценную CMS с SSR, виртуальной файловой системой, поддержкой локализации, визуальным редактором статей и горячей перезагрузкой контента. В этой статье я постараюсь показать, как всё это устроено изнутри.

    habr.com/ru/articles/1041324/

    #rust #tokio #ssr #vfs #typescript #rxjs #jwt #fluent #kdl

  10. Современный Angular: Заменяем жизненные циклы на сигналы

    Если вы пишете на Angular, то наверняка часто используете хуки жизненного цикла вроде ngOnChanges , ngOnInit и ngOnDestroy . С появлением сигналов и концепции Zoneless (когда Zone.js уже не обязателен) у нас появились более элегантные и читаемые альтернативы. Давайте разберем, как современный подход позволяет упростить код и избавиться от "шумных" методов жизненного цикла.

    habr.com/ru/articles/1040488/

    #angular #javascript #typescript #signal #hooks #rxjs #программирование #вебразработа

  11. Современный Angular: Заменяем жизненные циклы на сигналы

    Если вы пишете на Angular, то наверняка часто используете хуки жизненного цикла вроде ngOnChanges , ngOnInit и ngOnDestroy . С появлением сигналов и концепции Zoneless (когда Zone.js уже не обязателен) у нас появились более элегантные и читаемые альтернативы. Давайте разберем, как современный подход позволяет упростить код и избавиться от "шумных" методов жизненного цикла.

    habr.com/ru/articles/1040488/

    #angular #javascript #typescript #signal #hooks #rxjs #программирование #вебразработа

  12. Современный Angular: Заменяем жизненные циклы на сигналы

    Если вы пишете на Angular, то наверняка часто используете хуки жизненного цикла вроде ngOnChanges , ngOnInit и ngOnDestroy . С появлением сигналов и концепции Zoneless (когда Zone.js уже не обязателен) у нас появились более элегантные и читаемые альтернативы. Давайте разберем, как современный подход позволяет упростить код и избавиться от "шумных" методов жизненного цикла.

    habr.com/ru/articles/1040488/

    #angular #javascript #typescript #signal #hooks #rxjs #программирование #вебразработа

  13. Extended weekend hack. I was looking for a #nowplaying function that I can use anywhere and do anything with the data. Also, that will work continuously. Because I want to use it to promote artists to the audience during DJ sets. I had a solution that uses Serato Live Playlists, but it is not universal. Now I have this: hckr.tv/shazam/. It uses the #WebAudio Worklet, #RxJS, and #ShazamIO WASM to recognize tracks in the music stream directly in your browser.

  14. Extended weekend hack. I was looking for a #nowplaying function that I can use anywhere and do anything with the data. Also, that will work continuously. Because I want to use it to promote artists to the audience during DJ sets. I had a solution that uses Serato Live Playlists, but it is not universal. Now I have this: hckr.tv/shazam/. It uses the #WebAudio Worklet, #RxJS, and #ShazamIO WASM to recognize tracks in the music stream directly in your browser.

  15. Extended weekend hack. I was looking for a #nowplaying function that I can use anywhere and do anything with the data. Also, that will work continuously. Because I want to use it to promote artists to the audience during DJ sets. I had a solution that uses Serato Live Playlists, but it is not universal. Now I have this: hckr.tv/shazam/. It uses the #WebAudio Worklet, #RxJS, and #ShazamIO WASM to recognize tracks in the music stream directly in your browser.

  16. Extended weekend hack. I was looking for a #nowplaying function that I can use anywhere and do anything with the data. Also, that will work continuously. Because I want to use it to promote artists to the audience during DJ sets. I had a solution that uses Serato Live Playlists, but it is not universal. Now I have this: hckr.tv/shazam/. It uses the #WebAudio Worklet, #RxJS, and #ShazamIO WASM to recognize tracks in the music stream directly in your browser.

  17. Extended weekend hack. I was looking for a #nowplaying function that I can use anywhere and do anything with the data. Also, that will work continuously. Because I want to use it to promote artists to the audience during DJ sets. I had a solution that uses Serato Live Playlists, but it is not universal. Now I have this: hckr.tv/shazam/. It uses the #WebAudio Worklet, #RxJS, and #ShazamIO WASM to recognize tracks in the music stream directly in your browser.

  18. [Перевод] Signal Forms в Angular

    В Angular v21 у разработчиков появится новый, пока что экспериментальный, способ создавать формы: Signal Forms . После многих лет работы с формами, управляемыми шаблоном, template-driven forms ( ngModel ), и реактивными формами, reactive forms ( formGroup/formControl ), у нас появился третий подход, целиком основанный на сигналах и доступный в пакете @angular/forms/signals . В этой статье мы разберем основы: создание форм, обработку отправки и добавление валидации. Разобраться в формах

    habr.com/ru/companies/otus/art

    #js #Angular #Signal_Forms #сигналы #реактивные_формы #валидация_форм #FieldTree #TypeScript #RxJS #frontend_разработка

  19. [Перевод] Signal Forms в Angular

    В Angular v21 у разработчиков появится новый, пока что экспериментальный, способ создавать формы: Signal Forms . После многих лет работы с формами, управляемыми шаблоном, template-driven forms ( ngModel ), и реактивными формами, reactive forms ( formGroup/formControl ), у нас появился третий подход, целиком основанный на сигналах и доступный в пакете @angular/forms/signals . В этой статье мы разберем основы: создание форм, обработку отправки и добавление валидации. Разобраться в формах

    habr.com/ru/companies/otus/art

    #js #Angular #Signal_Forms #сигналы #реактивные_формы #валидация_форм #FieldTree #TypeScript #RxJS #frontend_разработка

  20. [Перевод] Signal Forms в Angular

    В Angular v21 у разработчиков появится новый, пока что экспериментальный, способ создавать формы: Signal Forms . После многих лет работы с формами, управляемыми шаблоном, template-driven forms ( ngModel ), и реактивными формами, reactive forms ( formGroup/formControl ), у нас появился третий подход, целиком основанный на сигналах и доступный в пакете @angular/forms/signals . В этой статье мы разберем основы: создание форм, обработку отправки и добавление валидации. Разобраться в формах

    habr.com/ru/companies/otus/art

    #js #Angular #Signal_Forms #сигналы #реактивные_формы #валидация_форм #FieldTree #TypeScript #RxJS #frontend_разработка

  21. RxJS в Angular: 5 операторов, которые превращают хаос данных в симфонию

    Стоит начать с боли всех разработчиков Angular: когда начинаешь свой проект, всё чисто и красиво. Но когда проект уже идёт, появляются подписки на подписки, данные из разных запросов нужно объединить, а пользователь начинает нажимать кнопки слишком быстро. И здесь приходит на помощь RxJS RxJS часто пугает своей сложностью. Прикол в том, что вам не нужно знать все 100+ операторов. Достаточно освоить базовую пятёрку, которая покроет 80%. И после того, как освоишь их, код становится намного читабельнее и быстрее.

    habr.com/ru/companies/ruvds/ar

    #angular #frontend #frontend_разработка #webразработка #webпрограммирование #Rxjs #rxjs_operato #ruvds_статьи

  22. RxJS в Angular: 5 операторов, которые превращают хаос данных в симфонию

    Стоит начать с боли всех разработчиков Angular: когда начинаешь свой проект, всё чисто и красиво. Но когда проект уже идёт, появляются подписки на подписки, данные из разных запросов нужно объединить, а пользователь начинает нажимать кнопки слишком быстро. И здесь приходит на помощь RxJS RxJS часто пугает своей сложностью. Прикол в том, что вам не нужно знать все 100+ операторов. Достаточно освоить базовую пятёрку, которая покроет 80%. И после того, как освоишь их, код становится намного читабельнее и быстрее.

    habr.com/ru/companies/ruvds/ar

    #angular #frontend #frontend_разработка #webразработка #webпрограммирование #Rxjs #rxjs_operato #ruvds_статьи

  23. RxJS в Angular: 5 операторов, которые превращают хаос данных в симфонию

    Стоит начать с боли всех разработчиков Angular: когда начинаешь свой проект, всё чисто и красиво. Но когда проект уже идёт, появляются подписки на подписки, данные из разных запросов нужно объединить, а пользователь начинает нажимать кнопки слишком быстро. И здесь приходит на помощь RxJS RxJS часто пугает своей сложностью. Прикол в том, что вам не нужно знать все 100+ операторов. Достаточно освоить базовую пятёрку, которая покроет 80%. И после того, как освоишь их, код становится намного читабельнее и быстрее.

    habr.com/ru/companies/ruvds/ar

    #angular #frontend #frontend_разработка #webразработка #webпрограммирование #Rxjs #rxjs_operato #ruvds_статьи

  24. Мы запихнули LifeOS в Telegram Mini App: как сделать сложный UI на React + Framer Motion и не сойти с ума

    На рынке тысяча трекеров привычек. Еще тысяча трекеров зала. И еще сотня приложений для медитаций. Проблема одна: они разрозненны. Данные о том, что я плохо спал, никак не влияют на план тренировок в другом приложении. А медитация живет в вакууме от уровня стресса. Мы хотели создать LifeOS — единую систему управления собой, которая живет там, где я провожу 90% времени. В Telegram. Никаких впнов, ноушенов и тому подобное не надо. Но была проблема: стандартные Telegram WebApps часто выглядят... как веб-сайты из 2010-го. Мне нужен был «вайб» Apple: премиальный, темный, с глубокими тенями и, главное, тактильный. Так появился UltyMyLife. Вот как мы строили архитектуру дисциплины на React. Интересный факт: Перед тем как релизнуть проект, мы поняли, что нужен полный редизайн, и в итоге потратили еще пару недель.

    habr.com/ru/articles/992100/

    #telegrambot #telegram_api #telegram_mini_app #react #rxjs #framer_motion #javascript

  25. Мы запихнули LifeOS в Telegram Mini App: как сделать сложный UI на React + Framer Motion и не сойти с ума

    На рынке тысяча трекеров привычек. Еще тысяча трекеров зала. И еще сотня приложений для медитаций. Проблема одна: они разрозненны. Данные о том, что я плохо спал, никак не влияют на план тренировок в другом приложении. А медитация живет в вакууме от уровня стресса. Мы хотели создать LifeOS — единую систему управления собой, которая живет там, где я провожу 90% времени. В Telegram. Никаких впнов, ноушенов и тому подобное не надо. Но была проблема: стандартные Telegram WebApps часто выглядят... как веб-сайты из 2010-го. Мне нужен был «вайб» Apple: премиальный, темный, с глубокими тенями и, главное, тактильный. Так появился UltyMyLife. Вот как мы строили архитектуру дисциплины на React. Интересный факт: Перед тем как релизнуть проект, мы поняли, что нужен полный редизайн, и в итоге потратили еще пару недель.

    habr.com/ru/articles/992100/

    #telegrambot #telegram_api #telegram_mini_app #react #rxjs #framer_motion #javascript

  26. Мы запихнули LifeOS в Telegram Mini App: как сделать сложный UI на React + Framer Motion и не сойти с ума

    На рынке тысяча трекеров привычек. Еще тысяча трекеров зала. И еще сотня приложений для медитаций. Проблема одна: они разрозненны. Данные о том, что я плохо спал, никак не влияют на план тренировок в другом приложении. А медитация живет в вакууме от уровня стресса. Мы хотели создать LifeOS — единую систему управления собой, которая живет там, где я провожу 90% времени. В Telegram. Никаких впнов, ноушенов и тому подобное не надо. Но была проблема: стандартные Telegram WebApps часто выглядят... как веб-сайты из 2010-го. Мне нужен был «вайб» Apple: премиальный, темный, с глубокими тенями и, главное, тактильный. Так появился UltyMyLife. Вот как мы строили архитектуру дисциплины на React. Интересный факт: Перед тем как релизнуть проект, мы поняли, что нужен полный редизайн, и в итоге потратили еще пару недель.

    habr.com/ru/articles/992100/

    #telegrambot #telegram_api #telegram_mini_app #react #rxjs #framer_motion #javascript

  27. От учебной проблемы до 1000 пользователей: как я писал интерактивный учебник по RxJS

    История проекта началась в прошлом (2025) году. Я преподаю JavaScript в HTML Academy, и когда мне предложили взять поток начинающих разработчиков по Angular, я согласился. Мы успешно прошли базу, но когда дело дошло до HttpClient и обработки данных, я столкнулся с проблемой: студентам сложно понять Observable и реактивный подход, имея в багаже только промисы. На лекции мне задали резонный вопрос: А где посмотреть актуальные и понятные материалы по RxJS?. Я провел небольшой ресерч и понял, что ниша полупустая: видеокурсы - это долго, документация - сложно, а интерактивной практики почти нет. Так появился мой open-source проект. В этой статье я показываю честную аналитику за 90 дней: как набрать 1000 пользователей без рекламы, почему провалилась моя любимая фича и как пет-проект превращается в полноценный продукт. Смотреть аналитику

    habr.com/ru/articles/991572/

    #rxjs #angular #pet_project #open_source #frontend #reactive_programming #обучение_программированию #аналитика #mvp #javascript

  28. От учебной проблемы до 1000 пользователей: как я писал интерактивный учебник по RxJS

    История проекта началась в прошлом (2025) году. Я преподаю JavaScript в HTML Academy, и когда мне предложили взять поток начинающих разработчиков по Angular, я согласился. Мы успешно прошли базу, но когда дело дошло до HttpClient и обработки данных, я столкнулся с проблемой: студентам сложно понять Observable и реактивный подход, имея в багаже только промисы. На лекции мне задали резонный вопрос: А где посмотреть актуальные и понятные материалы по RxJS?. Я провел небольшой ресерч и понял, что ниша полупустая: видеокурсы - это долго, документация - сложно, а интерактивной практики почти нет. Так появился мой open-source проект. В этой статье я показываю честную аналитику за 90 дней: как набрать 1000 пользователей без рекламы, почему провалилась моя любимая фича и как пет-проект превращается в полноценный продукт. Смотреть аналитику

    habr.com/ru/articles/991572/

    #rxjs #angular #pet_project #open_source #frontend #reactive_programming #обучение_программированию #аналитика #mvp #javascript

  29. От учебной проблемы до 1000 пользователей: как я писал интерактивный учебник по RxJS

    История проекта началась в прошлом (2025) году. Я преподаю JavaScript в HTML Academy, и когда мне предложили взять поток начинающих разработчиков по Angular, я согласился. Мы успешно прошли базу, но когда дело дошло до HttpClient и обработки данных, я столкнулся с проблемой: студентам сложно понять Observable и реактивный подход, имея в багаже только промисы. На лекции мне задали резонный вопрос: А где посмотреть актуальные и понятные материалы по RxJS?. Я провел небольшой ресерч и понял, что ниша полупустая: видеокурсы - это долго, документация - сложно, а интерактивной практики почти нет. Так появился мой open-source проект. В этой статье я показываю честную аналитику за 90 дней: как набрать 1000 пользователей без рекламы, почему провалилась моя любимая фича и как пет-проект превращается в полноценный продукт. Смотреть аналитику

    habr.com/ru/articles/991572/

    #rxjs #angular #pet_project #open_source #frontend #reactive_programming #обучение_программированию #аналитика #mvp #javascript

  30. Реактивная Архитектура: Пишем надежный Optimistic UI на чистом RxJS (Pattern Compensating Transaction)

    Пользователи ненавидят спиннеры. Они хотят видеть лайк сразу после клика. Optimistic UI решает эту проблему, но создает новую: что делать, если сервер вернет ошибку? В императивном коде (Promise/async-await) откат состояния превращается в ад из try/catch и ручных мутаций переменных, порождая Race Conditions. В этой статье я покажу, как реализовать надежный паттерн Compensating Transaction на чистом RxJS . Мы построим архитектуру, где состояние это поток, который невозможно "сломать" частыми кликами или сетевыми сбоями. Никаких if/else, только чистые потоки. Построить реактивный UI

    habr.com/ru/articles/974068/

    #angular #rxjs #typescript #frontend #архитектура #паттерны_проектирования #optimistic_ui #reactive_programming #state_management #best_practices

  31. Реактивная Архитектура: Пишем надежный Optimistic UI на чистом RxJS (Pattern Compensating Transaction)

    Пользователи ненавидят спиннеры. Они хотят видеть лайк сразу после клика. Optimistic UI решает эту проблему, но создает новую: что делать, если сервер вернет ошибку? В императивном коде (Promise/async-await) откат состояния превращается в ад из try/catch и ручных мутаций переменных, порождая Race Conditions. В этой статье я покажу, как реализовать надежный паттерн Compensating Transaction на чистом RxJS . Мы построим архитектуру, где состояние это поток, который невозможно "сломать" частыми кликами или сетевыми сбоями. Никаких if/else, только чистые потоки. Построить реактивный UI

    habr.com/ru/articles/974068/

    #angular #rxjs #typescript #frontend #архитектура #паттерны_проектирования #optimistic_ui #reactive_programming #state_management #best_practices

  32. Реактивная Архитектура: Пишем надежный Optimistic UI на чистом RxJS (Pattern Compensating Transaction)

    Пользователи ненавидят спиннеры. Они хотят видеть лайк сразу после клика. Optimistic UI решает эту проблему, но создает новую: что делать, если сервер вернет ошибку? В императивном коде (Promise/async-await) откат состояния превращается в ад из try/catch и ручных мутаций переменных, порождая Race Conditions. В этой статье я покажу, как реализовать надежный паттерн Compensating Transaction на чистом RxJS . Мы построим архитектуру, где состояние это поток, который невозможно "сломать" частыми кликами или сетевыми сбоями. Никаких if/else, только чистые потоки. Построить реактивный UI

    habr.com/ru/articles/974068/

    #angular #rxjs #typescript #frontend #архитектура #паттерны_проектирования #optimistic_ui #reactive_programming #state_management #best_practices

  33. I feel like the currently-proposed TC39 Observables lacking some value that can be supplied upon "completion" is a mistake. #RxJS #Observables #TC39 #ECMA262

  34. I feel like the currently-proposed TC39 Observables lacking some value that can be supplied upon "completion" is a mistake.

    #RxJS #Observables #TC39 #ECMA262

  35. I feel like the currently-proposed TC39 Observables lacking some value that can be supplied upon "completion" is a mistake.

    #RxJS #Observables #TC39 #ECMA262

  36. I feel like the currently-proposed TC39 Observables lacking some value that can be supplied upon "completion" is a mistake.

    #RxJS #Observables #TC39 #ECMA262

  37. I feel like the currently-proposed TC39 Observables lacking some value that can be supplied upon "completion" is a mistake.

    #RxJS #Observables #TC39 #ECMA262

  38. I feel like the currently-proposed TC39 Observables lacking some value that can be supplied upon "completion" is a mistake.

  39. Học hỏi từ Question 46: Hàm interval(period) tạo Observable phát ra dãy số tăng dần mỗi khoảng thời gian. Khi subscribe, biến đếm từ 0 và setInterval sẽ gửi giá trị mới; khi unsubscribe, timer dừng. #CodingChallenge #JavaScript #Observable #RxJS #LậpTrình #HọcLậpTrình #Tech

    dev.to/tomivan/coding-challeng

  40. Học hỏi từ Question 46: Hàm interval(period) tạo Observable phát ra dãy số tăng dần mỗi khoảng thời gian. Khi subscribe, biến đếm từ 0 và setInterval sẽ gửi giá trị mới; khi unsubscribe, timer dừng. #CodingChallenge #JavaScript #Observable #RxJS #LậpTrình #HọcLậpTrình #Tech

    dev.to/tomivan/coding-challeng

  41. 🗺️ New package: `@ngworker/router-signal-store` 17.0.0

    An #NgRx SignalStore-based version of `@ngworker/router-component-store` with no #RxJS dependency.

    - `RouterSignalStore` shared API for DI
    - `provideLocalRouterSignalStore` for local router signal store, a replacement for `ActivatedRoute`
    - `provideGlobalRouterSignalStore` for global router signal store, a replacement for NgRx Router Store
    - Strong and strict typing
    - Serializable router state

    github.com/ngworker/router-com
    #OpenSource #Angular

  42. 🗺️ New package: `@ngworker/router-signal-store` 17.0.0

    An #NgRx SignalStore-based version of `@ngworker/router-component-store` with no #RxJS dependency.

    - `RouterSignalStore` shared API for DI
    - `provideLocalRouterSignalStore` for local router signal store, a replacement for `ActivatedRoute`
    - `provideGlobalRouterSignalStore` for global router signal store, a replacement for NgRx Router Store
    - Strong and strict typing
    - Serializable router state

    github.com/ngworker/router-com
    #OpenSource #Angular

  43. 🗺️ New package: `@ngworker/router-signal-store` 17.0.0

    An #NgRx SignalStore-based version of `@ngworker/router-component-store` with no #RxJS dependency.

    - `RouterSignalStore` shared API for DI
    - `provideLocalRouterSignalStore` for local router signal store, a replacement for `ActivatedRoute`
    - `provideGlobalRouterSignalStore` for global router signal store, a replacement for NgRx Router Store
    - Strong and strict typing
    - Serializable router state

    github.com/ngworker/router-com
    #OpenSource #Angular

  44. 🗺️ New package: `@ngworker/router-signal-store` 17.0.0

    An #NgRx SignalStore-based version of `@ngworker/router-component-store` with no #RxJS dependency.

    - `RouterSignalStore` shared API for DI
    - `provideLocalRouterSignalStore` for local router signal store, a replacement for `ActivatedRoute`
    - `provideGlobalRouterSignalStore` for global router signal store, a replacement for NgRx Router Store
    - Strong and strict typing
    - Serializable router state

    github.com/ngworker/router-com
    #OpenSource #Angular

  45. 🗺️ New package: `@ngworker/router-signal-store` 17.0.0

    An #NgRx SignalStore-based version of `@ngworker/router-component-store` with no #RxJS dependency.

    - `RouterSignalStore` shared API for DI
    - `provideLocalRouterSignalStore` for local router signal store, a replacement for `ActivatedRoute`
    - `provideGlobalRouterSignalStore` for global router signal store, a replacement for NgRx Router Store
    - Strong and strict typing
    - Serializable router state

    github.com/ngworker/router-com
    #OpenSource #Angular

  46. Поиск на RxJS и Taiga UI

    Привет, Хабр! Я Антон Марченко, разработчик в Т-Банке. Поделюсь интересной задачей по работе с потоками на RxJS, которую мы однажды решали. Представьте HR-портал ИТ-компании, в котором реализован поиск по постам и статьям. Нам предстояло внедрить на сайт несколько внешних поисков: по пользователям, ссылкам и исходникам. А еще предусмотреть скелетоны и обработку ошибок и заложить возможность добавлять новые внешние источники поиска динамически, не дорабатывая каждый раз пользовательский интерфейс.

    habr.com/ru/companies/tbank/ar

    #angular #вебразработа #rxjs

  47. Поиск на RxJS и Taiga UI

    Привет, Хабр! Я Антон Марченко, разработчик в Т-Банке. Поделюсь интересной задачей по работе с потоками на RxJS, которую мы однажды решали. Представьте HR-портал ИТ-компании, в котором реализован поиск по постам и статьям. Нам предстояло внедрить на сайт несколько внешних поисков: по пользователям, ссылкам и исходникам. А еще предусмотреть скелетоны и обработку ошибок и заложить возможность добавлять новые внешние источники поиска динамически, не дорабатывая каждый раз пользовательский интерфейс.

    habr.com/ru/companies/tbank/ar

    #angular #вебразработа #rxjs

  48. Поиск на RxJS и Taiga UI

    Привет, Хабр! Я Антон Марченко, разработчик в Т-Банке. Поделюсь интересной задачей по работе с потоками на RxJS, которую мы однажды решали. Представьте HR-портал ИТ-компании, в котором реализован поиск по постам и статьям. Нам предстояло внедрить на сайт несколько внешних поисков: по пользователям, ссылкам и исходникам. А еще предусмотреть скелетоны и обработку ошибок и заложить возможность добавлять новые внешние источники поиска динамически, не дорабатывая каждый раз пользовательский интерфейс.

    habr.com/ru/companies/tbank/ar

    #angular #вебразработа #rxjs

  49. Angular Signals + RxJS: объединяем два реактивных мира в одном стейт-менеджере

    Angular долгое время ассоциировался с RxJS. Даже слишком: многие разработчики ощущали, что без Observable ничего не работает. Но вот в Angular 17 появляются Signals — синхронная реактивность прямо из коробки. В 17+ — они становятся мейнстримом. Возникает вопрос: а что делать с RxJS? Выбрасывать? Signals и RxJS — не конкуренты, а два мощных инструмента для решения разных задач. И если их правильно сочетать, можно построить удобную, масштабируемую и эффективную архитектуру.

    habr.com/ru/articles/935526/

    #signal #rxjs #angular

  50. Angular Signals + RxJS: объединяем два реактивных мира в одном стейт-менеджере

    Angular долгое время ассоциировался с RxJS. Даже слишком: многие разработчики ощущали, что без Observable ничего не работает. Но вот в Angular 17 появляются Signals — синхронная реактивность прямо из коробки. В 17+ — они становятся мейнстримом. Возникает вопрос: а что делать с RxJS? Выбрасывать? Signals и RxJS — не конкуренты, а два мощных инструмента для решения разных задач. И если их правильно сочетать, можно построить удобную, масштабируемую и эффективную архитектуру.

    habr.com/ru/articles/935526/

    #signal #rxjs #angular

  51. Angular Signals + RxJS: объединяем два реактивных мира в одном стейт-менеджере

    Angular долгое время ассоциировался с RxJS. Даже слишком: многие разработчики ощущали, что без Observable ничего не работает. Но вот в Angular 17 появляются Signals — синхронная реактивность прямо из коробки. В 17+ — они становятся мейнстримом. Возникает вопрос: а что делать с RxJS? Выбрасывать? Signals и RxJS — не конкуренты, а два мощных инструмента для решения разных задач. И если их правильно сочетать, можно построить удобную, масштабируемую и эффективную архитектуру.

    habr.com/ru/articles/935526/

    #signal #rxjs #angular

  52. Take a look inside observables with Bob Fornal at TechBash 2025.

    Join us Nov 4-7 in the Poconos! Learn more and register: techbash.com/

    #developers #angular #rxjs #javascript #webdev #kalahari #nepa

  53. Take a look inside observables with Bob Fornal at TechBash 2025.

    Join us Nov 4-7 in the Poconos! Learn more and register: techbash.com/

    #developers #angular #rxjs #javascript #webdev #kalahari #nepa

  54. Take a look inside observables with Bob Fornal at TechBash 2025.

    Join us Nov 4-7 in the Poconos! Learn more and register: techbash.com/

    #developers #angular #rxjs #javascript #webdev #kalahari #nepa

  55. Take a look inside observables with Bob Fornal at TechBash 2025.

    Join us Nov 4-7 in the Poconos! Learn more and register: techbash.com/

    #developers #angular #rxjs #javascript #webdev #kalahari #nepa

  56. Take a look inside observables with Bob Fornal at TechBash 2025.

    Join us Nov 4-7 in the Poconos! Learn more and register: techbash.com/

    #developers #angular #rxjs #javascript #webdev #kalahari #nepa

  57. От магии до понятной структуры: разбираемся, как работает Change Detection в Angular

    В Angular любое изменение в компоненте, которое отображается на экране, является результатом работы механизма отслеживания изменений (Change Detection, CD). За этим процессом стоит Zone.js, который можно представить в роли дирижера, сообщающего компонентам о необходимости обновить DOM. Zone.js не запускает CD сам. Он лишь создает контекст, в котором Angular потом может его запустить. Его задача только уведомлять Angular о завершении асинхронных операций, после чего Angular решает, нужно ли проверять изменения. Чтобы понять важность такого подхода, нужно учитывать особенности JavaScript. В JavaScript асинхронные операции, такие как setTimeout или fetch, разрывают стек вызовов. Это значит, что callback-функция, выполняемая после завершения асинхронной операции, не имеет информации о контексте, в котором она была вызвана. Для фреймворка, который отслеживает изменения, это создает определенные трудности: как узнать, что асинхронная операция завершилась и, возможно, изменила данные? Заглянуть под капот

    habr.com/ru/articles/925260/

    #Angular #Change_Detection #Zonejs #Zoneless #Angular_Signals #Производительность #Оптимизация #RxJS #Архитектура #javascript

  58. От магии до понятной структуры: разбираемся, как работает Change Detection в Angular

    В Angular любое изменение в компоненте, которое отображается на экране, является результатом работы механизма отслеживания изменений (Change Detection, CD). За этим процессом стоит Zone.js, который можно представить в роли дирижера, сообщающего компонентам о необходимости обновить DOM. Zone.js не запускает CD сам. Он лишь создает контекст, в котором Angular потом может его запустить. Его задача только уведомлять Angular о завершении асинхронных операций, после чего Angular решает, нужно ли проверять изменения. Чтобы понять важность такого подхода, нужно учитывать особенности JavaScript. В JavaScript асинхронные операции, такие как setTimeout или fetch, разрывают стек вызовов. Это значит, что callback-функция, выполняемая после завершения асинхронной операции, не имеет информации о контексте, в котором она была вызвана. Для фреймворка, который отслеживает изменения, это создает определенные трудности: как узнать, что асинхронная операция завершилась и, возможно, изменила данные? Заглянуть под капот

    habr.com/ru/articles/925260/

    #Angular #Change_Detection #Zonejs #Zoneless #Angular_Signals #Производительность #Оптимизация #RxJS #Архитектура #javascript