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. Как я перешёл с 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 #ооп #архитектура_фронтенда #сравнение_фреймворков #личный_опыт

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

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

    habr.com/ru/articles/1041324/

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

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

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

    habr.com/ru/articles/1040488/

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

  5. 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.

  6. 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.

  7. [Перевод] 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_разработка

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

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

    habr.com/ru/companies/ruvds/ar

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

  9. Мы запихнули 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

  10. От учебной проблемы до 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

  11. Реактивная Архитектура: Пишем надежный 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

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

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

    #RxJS #Observables #TC39 #ECMA262

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

  15. 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

  16. 🗺️ 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

  17. 🗺️ 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

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

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

    habr.com/ru/companies/tbank/ar

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

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

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

    habr.com/ru/articles/935526/

    #signal #rxjs #angular

  20. 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

  21. 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

  22. От магии до понятной структуры: разбираемся, как работает 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

  23. Как выжить в мире сложных интерфейсов в 2025-м: 7 работающих рецептов от React и CSS до дизайн-систем

    Как говорил дядя Бен, большие продукты — это большая ответственность. И без сложных интерфейсов тут никуда: а с ними и исследования становятся труднее, и встречается больше препятствий на этапе кода — от нюансов реактивного программирования до риска утонуть в разнообразии CSS-спецификаций. Для

    habr.com/ru/companies/ncloudte

    #javascript #ux #митап #css #дизайнсистема #интерфейсы #фигма #figma #js #rxjs

  24. Do you want to understand core concepts and operations of Reactive Programming nice and easy?

    Dive into our tutorial, Rx Playground!
    👉 sml.io/rxplayground

    Rx Playground gives you:
    ✅ Interactive learning with real-time data flow
    ✅ Fun environment to experiment with Rx operators
    ✅ Beginner-friendly tutorial with advanced use cases

    📚 Learn how operators like map, merge, switchMap, debounceTime, and more really work by seeing them in action.

    #reactiveprogramming #RxJS #threejs

  25. Do you want to understand core concepts and operations of Reactive Programming nice and easy?

    Dive into our tutorial, Rx Playground!
    👉 sml.io/rxplayground

    Rx Playground gives you:
    ✅ Interactive learning with real-time data flow
    ✅ Fun environment to experiment with Rx operators
    ✅ Beginner-friendly tutorial with advanced use cases

    📚 Learn how operators like map, merge, switchMap, debounceTime, and more really work by seeing them in action.

    #reactiveprogramming #RxJS #threejs

  26. Angular 20: Большое обновление для современного веба

    Angular 20 — это мощное обновление, которое делает разработку веб-приложений быстрее, удобнее и современнее. Новые возможности шаблонов, стабильные сигналы, поддержка zoneless режима и интеграция с AI позволяют создавать высокопроизводительные приложения с минимальными усилиями. В этой статье разберём ключевые нововведения Angular 20 и покажем, как их использовать в ваших проектах.

    habr.com/ru/articles/914934/

    #ангуляр #angular_20 #rxjs #javascript #typescript #j #обновление

  27. Explore #RxJS best practices designed for today’s modern ecosystem!

    This #InfoQ article guides you through patterns that scale from Angular 16 all the way to Angular 17/18, helping you write cleaner, more efficient, and future-proof code.

    📰 Read now: bit.ly/44Uvj7H

    #Angular #Angular17 #Angular18 #WebDevelopment

  28. Explore best practices designed for today’s modern ecosystem!

    This article guides you through patterns that scale from Angular 16 all the way to Angular 17/18, helping you write cleaner, more efficient, and future-proof code.

    📰 Read now: bit.ly/44Uvj7H

  29. People keep saying RxJS (well, observables) aren't suitable for React.

    No, RxJS (and observables) are absolutely perfect for React.

    #RxJS #React #ReactJS #FrontendDevelopment #Frontend

  30. People keep saying RxJS (well, observables) aren't suitable for React.

    No, RxJS (and observables) are absolutely perfect for React.

  31. Has anyone here worked with RxDB (rxdb.info) before? 🤔

    (Have I asked this question beige? 😅)

    I like the concept and it seems robust from what I’ve been reading on the docs, but something about it rubs me the wrong way.

    The tracking during dev perhaps that’s not possible to turn off? The quite aggressive marketing of the premium version? The constant popups while reading the docs?

    Unsure, but I’d like to hear from people who have used it, if there are any.

    #localFirst #js #rxjs

  32. Has anyone here worked with RxDB (rxdb.info) before? 🤔

    (Have I asked this question beige? 😅)

    I like the concept and it seems robust from what I’ve been reading on the docs, but something about it rubs me the wrong way.

    The tracking during dev perhaps that’s not possible to turn off? The quite aggressive marketing of the premium version? The constant popups while reading the docs?

    Unsure, but I’d like to hear from people who have used it, if there are any.

    #localFirst #js #rxjs

  33. Toying with Javascript Promise and async and the like, I tried my own wrapper. The outcome was, I realized, somewhat like RxJS. Though in the example I toyed with, my wrapper could not genuinely deliver the outcome of a list of Promises (or setTimeout calls) and **tell when all were finished**.

    So I looked how RxJS does it and ... it doesn't either 😎 . See codeberg.org/harald/Codeschnip

    rxjs.dev/guide/observable

    #typescript #javascript #promise #rxjs #async #asynchell #programming

  34. [Перевод] Что новенького в Angular 19

    Всем привет, с вами Максим Иванов , и сегодня мы поговорим о некоторых улучшениях, которые появились в последней версии Angular 19 , вышедшей в ноябре 2024. Публикация довольно запоздалая с этой точки зрения, но мы сегодня постараемся рассмотреть некоторые нововведения более детально. Как и всегда ребята из Google дарят нам что-то новое, что сделает наши приложения еще более быстрыми и эффективными. И в этом нам помогут модерновые реактивные примитивы, инкрементальная гидратация и многое другое.

    habr.com/ru/articles/884208/

    #angular #angular2 #angularjs #angular_19 #rxjs #signal #google

  35. IT IS A FUCKING GEM....

    interval(50)
        .pipe(
            filter(() => storageService.isReady()),
            retry(100)
        )
        .pipe(take(1))
        .subscribe(() => {
            console.log("storage ready");
        })
    

    And I absolutely hate it.
    #rxjs #javascript #typescript

  36. IT IS A FUCKING GEM....

    interval(50)
        .pipe(
            filter(() => storageService.isReady()),
            retry(100)
        )
        .pipe(take(1))
        .subscribe(() => {
            console.log("storage ready");
        })
    

    And I absolutely hate it.
    #rxjs #javascript #typescript

  37. I know how powerful #rxjs can be, but sometimes it's REALLY hurting my brain....

  38. I know how powerful #rxjs can be, but sometimes it's REALLY hurting my brain....

  39. I've been pondering about creating EventSourcing, CQRS & DDD scaffolding from scratch in TypeScript.

    There doesn't seem to be an OpenSource basic scaffolding for this using RxJS? ( I mean the basic bang like NgRx ).

    DDD -> NgRx
    - Command -> Action ( in imperative )
    - Command Handler -> Effect
    - Domain Event -> Action ( in past tense )
    - Aggregate state -> a Store entry
    - Aggregate state's apply -> Reducer

    Did I get this right?

    #RxJS #CQRS #EventSourcing #DDD #NgRx #TypeScript #OpenSource

  40. I've been pondering about creating EventSourcing, CQRS & DDD scaffolding from scratch in TypeScript.

    There doesn't seem to be an OpenSource basic scaffolding for this using RxJS? ( I mean the basic bang like NgRx ).

    DDD -> NgRx
    - Command -> Action ( in imperative )
    - Command Handler -> Effect
    - Domain Event -> Action ( in past tense )
    - Aggregate state -> a Store entry
    - Aggregate state's apply -> Reducer

    Did I get this right?

    #RxJS #CQRS #EventSourcing #DDD #NgRx #TypeScript #OpenSource

  41. Having worked with #Angular in-depth for 2 years now, I can articulate what I don’t like about the #framework.

    1. #RxJS is a terrible primitive to build most #CRUD software upon. #Promises are better for most things, and event listeners are fine.

    2. Its #DI system encourages long-lived, easily-accessible Singletons that are serious “foot guns.”

    3. Data management is painful. Resolvers are a worse DX than either #EmberJS’s Ember Data or #React’s TanStack Query.

    #JavaScript #JS #FrontEnd

  42. Having worked with #Angular in-depth for 2 years now, I can articulate what I don’t like about the #framework.

    1. #RxJS is a terrible primitive to build most #CRUD software upon. #Promises are better for most things, and event listeners are fine.

    2. Its #DI system encourages long-lived, easily-accessible Singletons that are serious “foot guns.”

    3. Data management is painful. Resolvers are a worse DX than either #EmberJS’s Ember Data or #React’s TanStack Query.

    #JavaScript #JS #FrontEnd

  43. Since it's related, here's the `removeEventListener` API I wish we had:

    ```javascript
    const removeListener = window.addEventListener('something', () => { /* ... */ });

    await someTime();

    removeListener();
    ```

    Benefits:
    1. You only provide the handler once, so it works great with lambdas. You don't need to keep a reference to the handler just to remove it later.
    2. You don't need to provide the event twice. It's additional information to hard-code and/or dynamically track.
    3. You can't accidentally `removeEventListener` on a function which was not bound in the first place (which is a no-op that often indicates a bug such as `removeEventListener('something', foo.bind(this)`).

    This design is basically a copy of the way handles subscriptions, but I find this much more ergonomic and intuitive.

  44. I've been taking this Udemy course on reactive #angular and #rxjs this weekend, and wow is it ever fantastic! I am learning so much about something I thought I actually knew a decent amount about, I was really wrong

    udemy.com/course/rxjs-reactive

  45. I built this POC to demonstrate how I'd use CustomEvents to implement Signals. Please criticize my approach and tell me why I need a native browser API for this.

    card-calc.surge.sh/

    #webDev #javaScript #signals #observable #frontend #customEvents #events #svelte #preact #rxjs

  46. Ever since #knockoutJS popularized data-binding, there's been numerous flavors of the #Observer pattern; Object.observe(), #React state, #RxJS, now #Signals. Every time I think, it's just #CustomEvents with extra steps.

    #Events are at the core of the #JavaScript runtime; why is everyone always trying to avoid using them!?

    #webDev #frontEnd #web

  47. I’m doing an internal workshop on the different state management options for angular in work next week, just one day before ng17 drops. Exciting times. I’m no expert on the topic, just a bit of an enthusiast who likes talking about it 😂
    #Angular #Angular17 #NgRx #RxJS #Signals

  48. The #rxjs with its pipes is ridiculously powerful.

  49. @zachleat There's a slide deck somewhere which is unironically called "#RxJS 'good' practices".

  50. Another beautiful educational material by Tomasz Krawczyk - this time, covering reactive programming, using #RxJS & #ThreeJS under the hood.

    Next time you'll need a refresher on a particular rx component, or you'll find yourself teaching these concepts - bookmark this site :)

    softwaremill.com/learn-reactiv

  51. angularday | 24th November 2023 | Verona (2023.angularday.it/):

    Are you ready for the 7th edition of ? 😍

    is now open until 31.08.2023, we look forward to seeing your talk proposal: t.co/usbGktVhx9

    @grusp t.co/JIs6m1ACYv

  52. The more #React code I write, review and debug, the more leery I get of useEffect.

    It may have its uses, but I feel like it violates React's core principle of referentially transparent components. Its effects are (locally) surprising and (globally) intransparent.

    I much prefer handling async state updates via #redux or #zustand or even #rxjs and eschewing useEffect altogether.

  53. In 2013 we wrote async javascript & the only patterns we had were races and callbacks & we liked it. Now we got 100*+ abstractions over races and callbacks.

    * most of those are #rxjs