Contattami | Tutti i corsi

ANGULAR & RXJS

Apprendere le fondamenta del paradigma funzionale reattivo, comprendere a fondo la libreria RxJS e sfruttarne il potenziale in applicazioni Angular

angular-rxjs



INTRODUZIONE
RxJS è una delle dipendenze più importanti di Angular, alla base della maggior parte delle funzionalità del framework. Infatti, reactive forms, router, HttpClient, HTTP interceptors, @Output EventEmitter, state manager come NGRX, solo per citarne alcuni, sono basati sul concetto di Observable.
OVERVIEW PROGRAMMA
In questa giornata:

• Si comprenderanno a fondo le fondamenta della libreria: Observable, Observer, Subscription, le differenti tipologie di Subject, notifiche next, error, complete, lettura dei marble diagrams, con esempi pratici e casi d’uso reali in vanilla JS ma soprattutto in applicazioni Angular.

• Esempi pratici per la comprensione e l’utilizzo di moltissimi operatori pipeaple e di creazione forniti da RxJS.

• Decine di snippet per sfruttare RxJS nel processo di comunicazione con il server tramite il servizio HttpClient: forkJoin, combineLatest, withLatestFrom, switchMap e mergeMap sono solo alcuni degli operatori che andremo ad analizzare e sfruttare per gestire diverse casistiche real-world.

• Corretta gestione degli errori tramite operatori quali catchError e throwError

• Gestione processo di autenticazione, protezione route tramite guards, HTTP interceptor, protezione DOM tramite creazione di structural directives, utilizzando un approccio idiomatico, sfruttando RxJS e il paradigma reattivo

• Utilizzo di RxJS e dei pipeable operators con i Reactive Forms

Approfondimento su Subject: come funzionano, potenzialità e le differenze tra le quattro tipologie: Subject, BehaviorSubject, AsyncSubject, ReplaySubject.
OBIETTIVO DEL CORSO
Questa giornata sarà utilissima a chi vuole comprendere le fondamenta di RxJS e della programmazione reattiva, a chi desidera sfruttarne il potenziale all’interno dei propri progetti Angular ed è, inoltre, propedeutico all'apprendimento di NGRX, uno state manager per Angular ispirato a Redux, che espone uno stato reattivo e che fa ampio uso di RxJS.
REQUISITI
Per trarre il massimo beneficio da questo corso è necessario, o quanto meno fortemente consigliato, conoscere i concetti fondamentali alla base di Angular o aver partecipato al corso Angular Core Concepts: utilizzo di direttive ngIf, ngFor, ngSwitch; avere basi sul concetto di "service" e dependency injection; comunicazione con il server tramite HttpClient e realizzazione di componenti custom.
La prima parte del corso sarà infatti dedicata alla comprensione e utilizzo della libreria RxJS (in vanilla Javascript) ma nella seconda parte moltissimi esempi saranno dedicati all'integrazione con Angular.

Durata: 8 ore (1g)
Livello: Avanzato
Versione Angular: 8.x
Versione Typescript: 3.x
Tipologia: Corso in aula


PROGRAMMA
Introduzione a RxJS
Imperative vs Reactive programming
Observable vs Observer
next, error and complete
Pull vs Push
Subscription
subscribe e/o async pipe
Operatori di Creazione vs Pipeable operators
Marble Diagrams
Vari esempi di utilizzo operatori
Debug
RXJS Subject
Unicast vs Multicast: differenze
Multicast con l'operatore share
Utilizzo semplificato di BehaviorSubject
Le differenti tipologie di Subject
Subject vs BehaviorSubject vs ReplaySubject vs AsyncSubject
RXJS & Angular: Reactive Forms
Integrazione XHR con i Form tramite operatori
Applicare operatori RxJS a FormControl e FormGroup
Integrazione 3rd party API e utilizzo di operatori RxJS (ad es. l'operatore withLatestFrom
RXJS & Angular: Esempi pratici HttpClient
Evitare bad practices: multiple subscribes
Operatori RXJS indispensabili: map, filter e molti altri
Http & map operator
Async Angular pipe
Nested HTTP request with switchMap
switchMap ed emissione valori multipli
switchMap e salvataggio dei risultati parziali
Richieste HTTP simultanee con l'operatore forkJoin
switchMap vs mergeMap vs concatMap vs exhaustMap
reduce and scan operators
Gestione errori e operatore catchError
retry operator
defer operator
Vari esempi e snippet riutilizzabili
RXJS & Angular: autenticazione e sicurezza
Gestione login e logout
Gestine token JWT e stato autenticazione con Subject
Router Guard: utilizzo idiomatico di RxJS
HTTPInterceptor gestito esclusivamente tramite operatori RxJS
MODALITÀ LEZIONI
TEORIA
angular-rxjs-mode1
Approfondimento su API, tecniche e funzionalità del framework. Decine di slide, diagrammi e materiale esclusivo incluso nel corso
LIVE CODING
angular-rxjs-mode2
La maggior parte degli argomenti sono esposti tramite sessioni di live coding, affrontando scenari reali e creando codice riutilizzabile
SOURCE CODE
angular-rxjs-mode3
Al termine del corso avrete a disposizione moltisissi esempi e snippet di codice riutilizzabili in applicazioni reali



ESEMPIO LEZIONE
In questo video:

effettuare chiamate HTTP sequenziali in cui la seconda chiamata dipende dal risultato della precedente
Creazione custom form "Rate" control
Implementazione di ControlValueAccessor
ISTRUTTORE:
FABIO BIONDI

profile-round-gde-1



TRAINER, SPEAKER, DEVELOPER
Fabio Biondi, front-end developer da quasi 20 anni, si occupa di formazione, sviluppo e consulenza in ambito enterprise.
Attualmente focalizzato principalmente su Angular, React, Redux, Fabio ha inoltre un solido background nella creazione di interfacce interattive, componenti e infografiche in HTML Canvas e D3.js.

Membro attivo e fondatore di diverse community italiane, collabora attivamente con molte realtà italiane per l'organizzazione di eventi, master, campus e corsi di specializzazione in cui ha formato centinaia di sviluppatori, studenti e team.

Nel 2018 ha ottenuto la qualifica di Google Developer Expert in Web Technologies e Angular e per diversi anni (2004-2011) è stato Adobe Certified Expert & Instructor (Flex, AIR, Flash PRO, Flash Catalyst).

2019-GDE-Angular-Badge
2019-GDE-Web-Technologies-Badge
COSA INCLUDE IL CORSO
Corso di formazione on-site
8 ore (1g)
Slides ed Esempi
Accesso Area Riservata
Codice Sorgente
Incluso
Attestato di partecipazione
PDF formato A4


FAQ
A chi è rivolto?
Principalmente a team e società che intendono organizzare corsi di formazione per un ristretto gruppo di persone (10-30).
Tuttavia, organizzo spesso corsi ed eventi aperti al pubblico in cui chiunque può partecipare (freelance, appassionati, dipendenti). Ti invito a seguirmi sui vari canali social o di iscriverti alla newsletter per rimanere aggiornato
Non sono sicuro che questo corso sia adatto al mio team. Puoi aiutarmi ad orientarmi?
Assolutamente sì. Utilizza il form di contatto e organizzeremo volentieri una skype call o telefonata di confronto
Posso modificare il programma e creare un corso personalizzato ?
Sì. Puoi scegliere gli argomenti che preferisci da questo e altri corsi e possiamo definire un programma ad hoc tarato sulle vostre necessità e skill. Per i corsi più avanzati, solitamente, organizzo una skype call con i partecipanti in modo da valutare il grado di preparazione attraverso un'intervista e/o una sessione di code review (gratuita, della durata di 30/60 minuti)
Dove può essere erogato il corso?
• In Friuli, Ronchi dei Legionari (Gorizia) - Max 12/14 posti con seduta e tavolo oppure 80 posti solo seduta.
• On-Site, presso la vostra sede, in tutta Italia
Quanto costa?
Richiedi le mie tariffe attraverso il form di contatto specificando indirizzo in cui erogare il corso, il periodo e la durata
Cè un quantitativo minimo di giornate da acquistare?
Vivendo a Trieste, i viaggi per raggiungere le sedi dei corsi sono spesso lunghi, faticosi e non privi di imprevisti.
Per questo motivo il numero di giornate minimo affinché si possa organizzare un corso è due, nel caso la durata del viaggio sia inferiore alle 3 ore. Tre giornate, invece, nel caso di una durata maggiore
Il corso prevede esercitazioni per gli studenti?
La scelta è vostra. È possibile effettuare 1 o 2 ore di esercitazioni al giorno oppure lasciare spazio agli argomenti del corso ed approfondimenti
Devo portare il mio laptop?
È necessario solo se intendete configurare l'ambiente di lavoro o effettuare esercitazioni. Un blocco appunti e una penna sono più che sufficienti dato che, dopo il corso, avrete comunque accesso al materiale tramite un'area riservata (slide, esercitazioni, source code)