RxJS Masterclass · CORSO LIVE

Pensare in flussi, non in passaggi.

RxJS Masterclass è il percorso live che costruisce un modello mentale solido della programmazione reattiva: dagli Observable di base alla composizione di flussi complessi, leggibili e testabili.

12htotali
Liveonline
15partecipanti max
Italianolingua

RxJS è ovunque nell'ecosistema Angular — e non solo — ma è spesso usato senza comprenderne davvero il modello. Il corso non è una lista di operatori da memorizzare: costruisce un modo di pensare in termini di flussi di dati nel tempo, così da scegliere l'operatore giusto con criterio invece che per tentativi.

Il programma

Il percorso, sessione per sessione

Il modello degli Observable, gli operatori per controllare, comporre e gestire la concorrenza dei flussi, e gli strumenti per il multicasting e la produzione.

  1. Fondamenta

  2. 01

    Il modello reattivo e gli operatori di base

    Programmazione reattiva vs codice imperativo e Promise, anatomia di Observable, Observer e Subscription, creazione di stream con of, from, interval, timer, fromEvent e Observable custom; map, filter, tap, scan, reduce, distinctUntilChanged e la famiglia take/skip, con pipe come modo di comporli.

  3. 02

    Ciclo di vita e teardown

    Sottoscrizione e cancellazione, teardown logic, prevenzione dei memory leak, pattern takeUntil per gestire la chiusura degli stream.

  4. 03

    Gestione degli errori

    catchError, retry, retryWhen e finalize, strategie di resilienza e recupero senza interrompere l'intero stream.

  5. 04

    Observable nativi della piattaforma

    Panoramica sull'Observable nativo implementato direttamente dalla piattaforma, cosa lo distingue da quello di RxJS, e come RxJS 9 lo supporta e vi interopera.

  6. Controllare e comporre i flussi

  7. 05

    Controllare il ritmo dei flussi

    debounceTime, throttleTime, sample e auditTime per scartare emissioni in eccesso, buffer e window per raggrupparle — le strategie pratiche per non sovraccaricare un consumer più lento del produttore.

  1. 06

    Flattening operator e concorrenza

    switchMap, mergeMap (con il suo parametro di concorrenza), concatMap ed exhaustMap: come gestiscono le sottoscrizioni interne, quando cancellano, accodano o ignorano — e i criteri per scegliere quello giusto in base alla concorrenza che serve davvero.

  2. 07

    Combinare flussi

    combineLatest, forkJoin, zip, merge, race e withLatestFrom per comporre più sorgenti in un unico flusso leggibile.

  3. Multicasting e produzione

  4. 08

    Subject e multicasting

    Subject, BehaviorSubject, ReplaySubject e AsyncSubject, differenza tra cold e hot observable, multicasting con share, shareReplay e connect — e perché conviene arrivarci solo dopo aver capito bene gli operatori.

  5. 09

    Scheduler ed esecuzione

    subscribeOn e observeOn: non quante sottoscrizioni interne girano (già visto con gli operatori di flattening), ma quando e in quale contesto — sincrono, asincrono, macrotask — vengono davvero eseguite.

  6. 10

    Operatori custom, testing e produzione

    Composizione funzionale e operatori riutilizzabili con pipe, marble testing con TestScheduler, quando non usare RxJS, buone pratiche per portare stream complessi in produzione.

Al termine del percorso

Cosa saprai fare

  • Comprendere il modello reattivo e la differenza rispetto al codice imperativo
  • Gestire correttamente sottoscrizioni, cancellazione e memory leak
  • Scegliere il flattening operator giusto (switchMap, mergeMap, concatMap, exhaustMap) in base alla concorrenza che serve
  • Comporre flussi complessi con gli operatori di combinazione
  • Gestire errori, retry e recupero senza interrompere l'intero stream
  • Distinguere l'Observable nativo della piattaforma da quello di RxJS e capire come RxJS 9 vi interopera
  • Usare Subject e multicasting per condividere l'esecuzione di uno stream
  • Controllare il ritmo di emissione di uno stream ad alta frequenza
  • Distinguere quando un side effect viene eseguito (scheduler) da quanti ne girano in concorrenza (flattening)
  • Scrivere operatori custom e testare flussi RxJS con il marble testing
  • Riconoscere quando RxJS non è lo strumento giusto

A chi è rivolto

Per chi lavora già con JavaScript o TypeScript

Utile per chi lavora con Angular, ma applicabile a qualunque stack che usi RxJS (NestJS, RxDB e altri).

  • Sviluppatori JavaScript/TypeScript
  • Team Angular che vogliono usare RxJS con più consapevolezza
  • Chi lavora con stream di dati o eventi asincroni

Prerequisiti: basi di programmazione asincrona (Promise, async/await). Non è richiesta esperienza pregressa con RxJS.

Chi guida il percorso

Il docente

Michele Stieven

Michele Stieven

Trainer, speaker e autore · Front-end & Angular

Michele si occupa di sviluppo front-end e formazione professionale da oltre 10 anni. È intervenuto come speaker in conferenze come Angular Day e Codemotion, ed è autore di diversi e-book dedicati alle decisioni strutturali che determinano la sostenibilità di applicazioni nel tempo. Maggiori informazioni →

  • Autore di diversi e-book
  • 10+ anni di formazione professionale su Angular
  • Speaker in conferenze come Angular Day e Codemotion

Con chi ho lavorato

Ho lavorato con startup e gruppi enterprise, in banking, assicurazioni, media (quella che ti fa vedere le partite, per dire) e software gestionale (quello che ti genera le fatture) — spesso sotto NDA, quindi niente nomi qui. Considerala una garanzia anticipata: la stessa riservatezza varrà anche per voi.

Alcuni degli eventi a cui ho partecipato come speaker

Informazioni pratiche

Informazioni pratiche

Durata
12 ore suddivise in sessioni da 4h
Partecipanti
Massimo 15 per edizione
Modalità
Live, online
Lingua
Italiano
Materiali
Repository di esempi e materiali di riferimento
Calendario
Da concordare in base agli impegni del team

Domande frequenti

FAQ

È richiesta esperienza pregressa con RxJS?

No, si parte dai fondamenti. Servono però basi solide di JavaScript/TypeScript e familiarità con Promise e async/await.

Il corso è specifico per Angular?

No: RxJS è trattato come libreria a sé stante. Gli esempi possono essere adattati al contesto Angular su richiesta.

Sono previsti esercizi pratici?

Sì, ogni sessione include esercitazioni pratiche su casi reali.

Che materiali vengono forniti?

Repository con gli esempi e il materiale usati durante il corso, più risorse di riferimento sugli argomenti trattati.

Come viene organizzato il calendario delle sessioni?

Il calendario viene definito insieme al team in base alle disponibilità reciproche, prima dell'inizio del percorso.

È previsto un attestato di partecipazione?

Sì, ai partecipanti che completano il percorso viene rilasciato un attestato di partecipazione.

Interessato per il tuo team?

Parliamone

Scrivimi per verificare obiettivi, livello del team e calendario possibile — o per valutare insieme quale corso è il punto di partenza giusto.

Contattami →