# RxJS Masterclass

*Learn RxJS from the basics to mastery. Understand everything: from core concepts and simple operators all the way to best practices, custom operators and marble testing.*

Get ready to step up your RxJS skills to the next level! This workshop is targeted at developers who want to step up their RxJS skills or want to learn RxJS entirely from scratch!

Understand everything: from core concepts, simple operators and the basic building blocks all the way to best practices, custom operators, higher order observables and marble testing.

Based on real-world examples, we will explore, evaluate, and use advanced RxJS techniques to develop sustainable solutions for complex use cases. Push your knowledge to the upper reaches and improve your ability to effectively handle tricky issues with RxJS.

## Description

Dive into the world of RxJS with our intensive workshop designed to equip you with all the necessary knowledge and tools to harness the power of reactive programming:

Understanding RxJS Primitives: Uncover the difference between Subject and Observable, convert Promise APIs to Observable, and learn about optimal subscribing strategies and the execution context of Observables.

Maintainable error handling and resilient data streams are a difficult but essential part of every vital application. The way we shape our state and the derived data streams is admittedly a matter of deep architecture knowledge, but also it involves dealing with the low-level problems of multicasting and shared state.

To ensure we are safe from regressions, different testing approaches should be employed. Therefore, we will take a closer look at those and implement marble tests to cover teardown logic and avoid memory leaks over tests.

__Concepts & Marble Diagrams:__ Explore useful RxJS learning tools, understand how to read marble diagrams, and delve into various observable and operator types.

__Operator Groups:__ Get hands-on with transform operators, learn about filtering, completion, error handling, and explore the top 4 flattening operators.

__Subjects:__ Understand the producer-consumer pattern with Observers and Subscribers and explore the basic Subject types including Subject and BehaviorSubject.

__Reactive Building Blocks:__ Discover how to manage state with streams, notify with events, and execute logic based on state or events. We'll also discuss the difference between RxJS and Signals.

__Custom Sections:__ Get practical with live-coding sessions in our repositories and in-depth code reviews to refine your understanding and application of RxJS.

Jump in and start your journey into mastering reactive programming with RxJS today!

## Takeaways

- Understanding RxJS from scratch to expert level
- Effectively handling errors across RxJS applications
- Creating reusable custom operators beyond using `pipe`
- Testing approaches protecting a code base against regressions
- Marble testing with RxJS
- Multicasting operators in RxJS
- Advanced error handling
- Error-prone code encapsulation
- A deep dive into Subjects
- Multicasting with observables 
- Understand combination & flattening Operators
- Stateful reactive programming
