Angular RxJS e Redux

Angular Data Architectures: Redux e RxJS 5 (3gg)

NUOVO SITO WEB

Articoli, tutorial, informazioni aggiornate su corsi ed eventi sono disponibili sul nuovo sito web:

training.fabiobiondi.io

Questo contenuto è quindi obsoleto!!

Angular Data Architectures è un corso diviso in 3 parti sulle più recenti ed avanzate tecnologie in merito alla creazione di architetture dati solide e scalabili in contesti Angular 2+ enterprise e non.

I partecipanti verranno preparati su RxJS5 ed Observables per sfruttare al meglio RxJS in scenari sia comuni che avanzati nello sviluppo di Web Applications quali gestione input utente, richieste multiple da e verso server dipendenti tra loro e molto altro.

Tramite Redux verranno inoltre esplorate tecniche per una gestione dello stato applicativo chiara, performante, prevedibile e scalabile. Man mano che un’applicazione cresce, come si garantisce che una variazione di stato in un modulo sia consistente e accurata in altri moduli indipendenti? Cosa succede se tali modifiche risultano in altre modifiche?

3 Giornate – 24h

  • Programma tarato sul livello di conoscenza dei partecipanti
  • Preparazione allo sviluppo funzionale e reattivo in contesti enterprise Angular 2+ e Typescript
  • Comprensione nozioni in dettaglio su RxJS, Observables e Redux
  • Teoria, diagrammi interattivi, live-coding, pratica ed esercizi
  • Studio casi d’uso più comuni ed avanzati con relative soluzioni e codici riutilizzabili oltre il termine del corso
  • Slides, repository con esercizi e relative soluzioni, tips & tricks ed altre risorse utili per lo sviluppo quotidiano in RxJS e Redux in contesti Angular 2+

A chi è rivolto?

  • Teams e Developers: il corso prepara ad una profonda comprensione ed applicazione di pattern functional e reactive con RxJS e Redux per risolvere sfide complesse, supportando le aziende anche con servizi post-corso di consulenza e sviluppo.
  • Studenti: una valida soluzione post-diploma / laurea per avvicinarsi in brevissimo tempo al mondo del lavoro utilizzando alcune delle più recenti e richieste tecnologie front-end.

LEARN

DSC_0205

La mattina e una parte del pomeriggio sono dedicati alla teoria, costantemente supportata da slides, esempi pratici e diversi casi d’uso illustrati dal docente.

LIVE CODE

DSC_0195

Il docente scriverà codice “dal vivo” applicando buona parte degli argomenti trattati, coinvolgendo attivamente i partecipanti e rispondendo alle loro domande.

HANDS-ON

DSC_0200

Nel pomeriggio gli studenti metteranno in pratica le nozioni acquisite durante la giornata realizzando diversi esercizi con il costante supporto del docente.

Pre-requisiti

Per partecipare è necessario avere confidenza con

  • la maggior parte degli argomenti trattati durante il corso Angular Master Class
  • concetto di stato applicativo di un’applicazione
  • strumenti Git e npm v.3+

Location

  • Presso la sede della Vostra azienda / scuola
  • Prezzo le sedi convenzionate e i nostri partner a Milano, Roma, Roncade (TV), Pordenone e Verona.

Per domande, tariffe o per organizzare un meeting

COMPILA IL FORM

Il programma

Ogni modulo ha la durata di 8 ore e include sessioni di didattica ed esercitazione.

Day #1: Reactive Programming in RxJS 5

Reactive Programming & RxJS 5

  • Concetti core Reactive Programming, differenze e use cases in relazione ad altri paradimmi
  • Comprensione in dettaglio di Observables e Observers
  • Creazione di custom Observables ed Observers in comuni casi d’uso
  • Utilizzo degli operators più comuni e scenari d’uso per ciascuno
  • Gestione eventi asincroni comuni ed avanzati quali HTTP
  • Esercizi sulle basi di RxJS con tips & tricks

Real-world RxJS

  • Debugging in RxJS
  • Combinazione di Observables ed operators
  • Subjects e multicasting: cosa sono, differenze tra i diversi tipi di Subjects e casi d’uso per ciascuno
  • BehaviourSubject in dettaglio: perché viene tanto usato e come evitare errori più comuni
  • Studio problemi comuni nelle Web Applications con relative soluzioni in RxJS

Angular 2+ e RxJS

  • Integrazione RxJS in progetti Angular e Typescript
  • Aspetti reactive del framework Angular: Http, Reactive Forms, Router, Componenti
  • State management e application flow con RxJS
  • Miglioramento performance di un’applicazione Angular con RxJS
  • Build e distribution di un’applicazione Angular con RxJS

RxJS Avanzato:

  • Cold vs Hot Observables
  • Gestione degli errori
  • Gestione WebSockets in RxJS
  • Unit testing con RxJS
  • Utilities per lo unit testing con RxJS

Day #2: Angular Data Architecture in Redux

Concetti Core

  • Problemi di comunicazione tra componenti Angular
  • Gestione del data-flow deterministico, scalabile ed esplicito
  • Caratteristiche del pattern Flux e come Redux evolve da esso
  • Vantaggi dell’ unidirezionalità
  • Confronto con MVC

Integrazione con Angular 2+

  • Pattern Smart e Dumb Components
  • Come mantenere lo stato applicativo e Redux indipendente dai componenti
  • Integrazione Redux + Typescript: tipizzazione dello stato applicativo
  • Integrazione Redux + RxJS
  • ChangeDetectionStrategy: come migliorare le performance dei componenti tramite Redux
  • Utilizzo di librerie Redux in Angular: angular-redux (precedentemente denominato ng2-redux) e ngrx. Differenze e come scegliere consapevolmente.

Real World Redux con testing

  • Principi fondamentali
  • Action e action creator con unit testing
  • Reducers con unit testing
  • Caratteristiche dello Store immutabile
  • Comporre lo stato iniziale e l’avvio dell’app
  • Vantaggi dello Single state tree
  • L’importanza dell’Immutabilità

Redux avanzato

  • Composizione di reducers
  • Redux Middlewares
  • Side effects con redux-observable e ngrx/effects
  • State selectors, memoization e computed data
  • Accenni server-side rendering con Redux e Angular 2+

Day #3: Real World Application

Durante la terza giornata si estenderà un’applicazione di banking, risultato della 4° giornata di Angular Master Class, al fine di mostrare un confronto più chiaro delle differenze e dei vantaggi introdotti da RxJS e Redux in un’applicazione. La previa partecipazione al corso Angular Master Class è consigliata ma non obbligatoria, in quanto verranno presentati a tutti i partecipanti gli aspetti principali dell’applicazione.

Si affronteranno inoltre le difficoltà ed errori più comuni nella gestione di eventi asincroni e dello stato applicativo, portando luce e soluzioni riusabili in diversi contesti relativi ad applicazioni Angular.

Analisi e risoluzione

  • Analisi iniziale dell’applicazione prima di Redux + RxJS e studio dei problemi di stato applicativo e data-flow
  • Risoluzione dei problemi tramite puro RxJS in Angular 2+
  • Analisi pro e contro puro RxJS
  • Integrazione Redux con Observable Store nell’applicazione
  • Analisi struttura dello stato applicativo: errori e design patterns più comuni
  • Analisi struttura di un progetto Angular 2+ con Redux

Operazioni

  • Operazioni CRUD in Redux
  • Creazione action creators e reducers con unit testing
  • Creazione componenti smart & dumb connessi a Redux con unit testing della parte Redux
  • Utilities e tips per la modifica dello stato applicativo in maniera concisa, performante e dichiarativa
  • Gestione richieste HTTP al server
  • Gestione validazione server ed optimistic updates con eventuale rollback
  • Gestione autenticazione JWT in Redux
  • Persistenza dello stato applicativo

Docente

GIOVANNI JIAYI HU

Front-End Developer and Consultant

I’m currently working as Front-end Developer and Consultant leveraging ReactJS & Redux by Facebook and Angular by Google. I’m also active member of the communities “React Italia”, “Angular Italia” and “Frontenders Verona”.
I love digging into abstract concepts, algorithms, data structures and wondering about architectures. I find myselef excited by performant clean code and I’m a strong open-source advocate as well as contributor.
Also fan of pure Javascript or CSS whenever possible and reasonable.

I work daily on web applications built on edge technologies like CSS Next, Webpack, React, Angular 2, RxJS, Redux and many other solid tools like CSS pre-processors Scss/Less, unit testing Mocha/Jasmine or build runners Gulp/Grunt.

In my spare time I really enjoy reading novels and dystopian books or watching dramatic films. Sometimes I also do experiments with cooking but I would not recommend anyone hiring me as chef.


PER INFORMAZIONI:

Il tuo nome (richiesto)

La tua email (richiesto)

Oggetto

Il tuo messaggio

Leave a Reply

Your email address will not be published. Required fields are marked *