RxJS – podstawy reaktywnego programowania
RxJS to biblioteka wspierająca reaktywne programowanie w JavaScript przy użyciu strumieni, pozwala na łatwiejsze programowanie operacji asynchronicznych. Rozwiązuje problemy które mamy w Promisach czy funkcjach zwrotnych (callbacks).
Żeby łatwiej zrozumieć z czym jest RxJS, można powiedzieć że jest to odpowiednik Lodash, jednakże przeznaczony do obsługi strumieni zdarzeń (event streams).
W ostatnim czasie sporo mówi się o reaktywnym programowaniu, a sama biblioteka jest wykorzystywana jako dependency w takich projektach jak Angular (po stronie przeglądarki), czy Nest (po stronie serwera).
Najtrudniejszy aspekt programowania reaktywnego, to zacząć myśleć reaktywnie!
Aby nauczyć się myśleć reaktywnie z RxJS, najpierw musimy poznać i zrozumieć jego podstawy, w jaki sposób działają streamy, jak je tworzyć, łączyć, a także zmieniać przesyłane w nich wartości poprzez operatory.
Ucząc się wbudowanych operatorów na przykładach, przestawimy nasze myślenie tak, żeby pozbyć się imperatywnych nawyków pisania kodu. Zamienić architekturę stateful na architekturę reaktywną opartą o strumienie.
**Dlaczego JavaScript?**
JavaScript pojawił się ponad 20 lat temu jako język skryptowy w przeglądarkach internetowych, czyli po stronie klienta. Później zawitał też po stronie serwera jako Node.js, a dalszy jego rozwój pozwala nam dziś budować aplikacje mobilne, desktopowe, programować bazy danych, a nawet roboty.
Czy wiedziałeś, że najbardziej popularne IDE dla web developerów, Visual Studio Code jest napisane w TypeScript HTML i CSS ?
Idea “Full Stack JavaScript” opiera się na wykorzystaniu technologii webowych, HTML, CSS i JavaScript we wszystkich etapach budowy aplikacji:
– Strony internetowe (Czysty HTML+CSS+JavaScript, Angular, React, Vue)
– Aplikacje mobilne (Cordova, Capacitor, Ionic, NativeScript)
– Aplikacje desktopowe (Electron)
– Serwer (Node.js, Express, NestJS, Fastify)
– Bazy danych (MongoDB Shell)
– IoT (Cylon.js, Johnny-five)
Czego się nauczysz?
Na praktycznych przykładach będziesz się uczył wbudowanych operatorów, dzięki czemu szybciej je zrozumiesz i lepiej zapamiętasz ich zastosowanie.
Dzięki przygotowanym ćwiczeniom zobaczysz jakie korzyści płyną z pisania kodu reaktywnego i unikania przechowywania samemu stanu aplikacji.
Nauczysz się wykorzystywania RxJS po stronie przeglądarki oraz serwera.
Dla kogo jest ten warsztat?
- konstrukcje warunkowe,
- pętle,
- operatory logiczne,
- var, const, let,
- funkcja,
- klasa,
- ES Modules (import/export)
- arrow function
- callback
Prowadzący
Full Stack Web Developer od 2007, konsultant i szkoleniowiec. Zaczynał od PHP i MySQL, lecz szybko dostrzegł potęgę JavaScript i NoSQL. Obecnie pisze backend w Node.js z wykorzystaniem Nest, a front w Angular, po obu stronach wykorzystując TypeScript. Miłośnik RxJS oraz programowania reaktywnego.
Poza pracą w IT jest Instruktorem Freedivingu, nurkowania na wstrzymanym oddechu. Balansuje na slackline, skacze na trampolinach, żongluje. Niepytany bez skrępowania zaznaczy, że "morsowałem" ;)
Program warsztatów
- Podstawy działania strumieni
- Observable
- Observer
- Subscription
- Callback vs Promise vs Observable
- Tworzenie strumieni
- Własny strumień: new Observable((oserver) => {})
- Wbudowane kreatory strumieni: of, from, fromEvent, timer…
- Jak działają operatory
- Użycie metody pipe()
- Podstawowe operatory: map, filter, reduce, switchMap
- Observable i Observer w jednym
- Subject
- Behavior Subject
- Replay Subject
- MultiCasting
- Cold i Hot Observable
- Operatory publish, share, multicast
- Praktyczne zastosowanie operatorów.
- debounceTime
- merge
- delay
- switchMap
- takeUntil
Uwaga
**Rejestracja dostępna bezpośrednio pod poniższym [linkiem.](https://app.evenea.pl/event/rxjs2803/)**
Zapisy na wybrany warsztat zostały zakończone.