Course Preview

State Management in
Angular, RxJS e NGRX

Un video corso sull'utilizzo di RxJS e NGRX, lo state manager più utilizzato per lo sviluppo di applicazioni enterprise in Angular

IL PROGRAMMAACQUISTA
logo

PANORAMICA

Cosa include questo video corso?

NGRX è lo state manager più utilizzato per la creazione di applicazioni enterprise in Angular. Si ispira al pattern Redux e sfrutta RxJS per esporre i dati come Observable e gestire i side effect.
Nasce, quindi, questo corso allo scopo di fornire un solido background sia su RxJS che NGRX.
Questo prodotto è infatti composto da due video corsi separati:

instagram Profile
1
Video Corso RxJS

Comprendere la programmazione reattiva e RxJS con esempi e casi d'uso in JavaScript e all'interno di applicazioni Angular

1
Video Corso NGRX

Un corso dedicato allo state manager NGRX dalle basi fino ai casi d'uso più complessi e particolari

270

Video lezioni

26

ore di lezione

30

giorni: soddisfatto o rimborsato

A chi è rivolto?

Non è necessario avere alcuna conoscenza pregressa sul framework

ANGULAR DEVELOPERS

Per comprendere gli argomenti trattati nel corso è necessario avere una buona conoscenza delle seguenti funzionalità del framework Angular: componenti custom, gestione modulare di un progetto, dependency injection, router e lazy loading. Nel caso mancassero tali requisiti ti consiglio prima approfondire questi argomenti o di acquistare il video corso Angular Fundamentals

ANGULAR DEVELOPERS

SVILUPPATORI

Pur essendo un corso realizzato per sviluppatori che già utilizzano Angular, tutti gli argomenti sono affrontati dalle basi, sia per quanto concerne RxJS che NGRX. Quindi si rivolge a tutti coloro che vogliono comprendere il potenziale e le opportunità offerte dal framework Angular, la programmazione reattiva in RxJS e NGRX

SVILUPPATORI

Cosa include il corso

Tutto ciò di cui hai bisogno per comprendere il paradigma reattivo con RxJS e creare applicazioni scalabili e manutenibili tramite l'utilizzo dello state manager NGRX

PRINCIPIANTI ed ESPERTI

PRINCIPIANTI ed ESPERTI

Un percorso guidato per fornire un solido background su RxJS e NGRX, dalle basi ai concetti più avanzati. Adatto a sviluppatori che non hanno mai utilizzato questi strumenti, o per chi, invece, è già più esperto e vuole approfondire.

CORSO RXJS

CORSO RXJS

Decine di esempi pratici per comprendere i segreti della programmazione Reattiva. Non solo utile per chi desidera successivamente utilizzare NGRX ma, soprattutto, per sfruttare il potenziale del framework Angular

CORSO NGRX

CORSO NGRX

Non solo codice ed esempi "hello world" ma metodologie, pattern e buone pratiche per la creazione di codice manutenibile e scalabile per lo sviluppo di applicazioni enterprise

REAL WORLD APPLICATIONS

REAL WORLD APPLICATIONS

Il corso include, inoltre, lo sviluppo di un'applicazione per la gestione di fatture composto da ben 70 video in cui si analizzano moltissimi scenari e casi d'uso particolari

logo

1. IL CORSO ANGULAR & RXJS

65 lezioni per una durata di quasi 4 ore
+ 4 ore addizionali bonus di live coding in RxJS e Vanilla JS

  • Introduzione a RxJS
  • Gli operatori di creazione fondamentali
  • Decine di esempi di operatori pipeable
  • Higher Order Observable
  • Chiamate XHR e gestione concorrenza
  • Introduzione prima parte del corso su RxJS (teoria - articolo)
  • Premessa (teoria - video) (1:14)
  • Introduzione a RxJS (3:10)
  • Imperative vs Reactive Programming (9:25)
  • RxJS is smart: preview operatori throttleTime & scan (2:41)
  • Pull vs Push (8:08)
  • "next", "error" e "complete" functions (5:07)
  • Subscription e unsubscribe (4:56)
  • Operatori-di-creazione (6:07)
  • Pipeable operators (5:01)
  • Debug and tap operator (4:58)
  • Comprendere i marble diagrams (3:41)
  • Tutti gli esempi del capitolo su StackBlitz
  • Come utilizzare StackBlitz (3:34)
  • Intro Capitolo (teoria - articolo)
  • Operatore "map" (5:03)
  • Angular "async" pipe (6:08)
  • Operatore "forkJoin" (5:15)
  • Operatore "ForkJoin" con dictionary (update RxJS 6.4)
  • Operatore "combineLatest" (articolo)
  • Operatore "switchMap": nested XHR (4:07)
  • Operatore "switchMap" per iterare sugli array (3:01)
  • Operatore "retry" e gestione errori con l'operatore "catchError" (6:38)
  • Operatori "reduce" e "scan" (6:00)
  • "switchmap" vs "exhaustmap" (6:14)
  • "switchmap" vs "concatmap" vs "mergemap" vs "exhaustmap" (4:00)
  • Esercizio online su switchMap
  • Operatore defer(): lazy observables (5:04)
  • Creazione Operatori Custom RXJS (5:50)
  • Cosa sono i BehaviorSubject (articolo)
  • introduzione al processo di autenticazione in Single Page Applications (TEORIA) (6:51)
  • Esercizio online su BehaviorSubject
  • Login e BehaviorSubject (7:31)
  • Auth-guard e RxJS (4:32)
  • Interceptor - part1: Subject e getvalue (7:59)
  • Interceptor - part2: approccio idiomatico (3:09)
  • Interceptor - part3: gestione errori (6:13)
  • RxJS & Router Events (3:55)
  • Live demo e source code
  • Introduzione al capitolo (teoria - articolo)
  • Reactive Forms vs Template Driven Forms (8:19)
  • I moduli ReactiveFormsModule e HttpClientModule (0:43)
  • Registra il tuo token su OpenWeatherMap
  • Multiple Subscribes (Bad Practice) (4:51)
  • Evitare subscribe multiple con "switchMap" e gestione degli errori con "catchError" (3:23)
  • Utilizzare operatori RxJS con i reactive form: "startWith", "distinctUntilChanged", "decounceTime", "filter" (4:40)
  • L'operatore "withLatestFrom" (7:25)
  • Password match: "combineLatest" e FormControl (articolo)
  • Esercizio su FormControl e combineLatest
  • Introduzione al concetto di Subject - unicast vs multicast (10:01)
  • Utilizzo BehaviorSubject per contenere e condividere dati (6:51)
  • Subject as Observer (5:03)
  • Multicast: "Subject" vs operatore "share" (4:32)
  • "Subject" vs "BehaviorsSubject" vs "ReplaySubject" vs "AsyncSubject" (6:31)
  • Sommario e demo sulle diverse tipologie di Subject (2:03)
  • Risorse e marble diagrams
  • Intro
  • 1. Introduzione alla FP (5:08)
  • 2. Composizione di funzioni (3:58)
  • 3. Immutabilità, side effects e stato (4:41)
logo

2. IL CORSO NGRX

197 video per una durata di quasi 18 ore

  • Presentazione corso (9:11)
  • Gruppo Facebook, supporto e Link
  • 1. A cosa serve uno state manager (4:43)
  • 2. Cos'é NGRX: pro e contro (12:12)
  • 3. NGRX Diagram (6:17)
  • 4. Progetto e struttura cartelle (5:56)
  • 5. NGRX: code preview (9:06)
  • 6. Stateless applications (6:02)
  • Introduzione al capitolo (teoria - articolo)
  • 1. GOAL: cosa realizzeremo in questo capitolo (3:32)
  • 2. Store, reducers e Actions (TEORIA) (8:06)
  • 3. Creazione Progetto (1:56)
  • 4. Hello NGRX (3:54)
  • 5. NGRX & Redux DevTools (3:50)
  • 6. Lo Store (0:55)
  • 7. Selectors (4:25)
  • 8. Selectors & ngFor (3:30)
  • 9. Actions (5:43)
  • 10. Reducers (5:13)
  • 11. Azioni con parametri (6:38)
  • 12. ReduxDevTools: dettagli e considerazioni (7:26)
  • 13: Manipolare Array: ADD e REMOVE (9:35)
  • Quiz - NGRX Fundamentals
  • 01. GOAL: manipolare collezioni dati in NGRX (3:11)
  • 02. NGRX Actions (3:05)
  • 03. ES6 TIP: Immutabilità e manipolazione array (8:40)
  • 04. "users" reducer (7:39)
  • 05. UI: forms, add e delete (9:10)
  • 06. Modifica dei dati utenti e "bugs" (12:26)
  • Quiz - NGRX: Wotk with collections
  • Download source code
  • 01. GOAL: NGRX CRUD apps (8:19)
  • 02. Creazione Progetto (0:54)
  • 03. Installazione mock server REST (2:12)
  • 04. Installazione NGRX e configurazione Store (1:21)
  • 05. Actions (3:17)
  • 06. ES6 TIP: immutabilità e manipolazione oggetti (4:08)
  • 07. Reducer "compositi" contenenti logica (12:21)
  • 08. Sviluppo UI: form e list - parte 1 (12:00)
  • 09. Sviluppo UI: form e list - parte 1 (6:25)
  • 10. Effects: introduzione alla sintassi e al funzionamento (TEORIA) (7:32)
  • 11. Effects - Parte 1: load (11:28)
  • TIP: importare l'effetto e HttpClientModule in AppModule
  • 12. Effects - Parte 2: delete (6:02)
  • 13. Effects - Parte 3: save, edit, add and fix problemi (20:07)
  • 14. AppState: custom type per lo Store (2:28)
  • 15. Combine Reducers con ActionReducerMap (6:33)
  • 16. Selectors (5:11)
  • 17. CreateSelector: selectors con parametri ed espressioni (utilizzo di filter & reduce) (8:26)
  • 18. Selectors: miglioramenti (1:28)
  • 19. Gestione Errori (7:28)
  • Download source code
  • QUIZ - NGRX Crud
  • 01. Gli argomenti delle prossime lezioni (articolo)
  • 02. GOAL: demo applicazione (4:50)
  • 03. Anticipazione: codice finale (4:24)
  • Download Source Code
  • 01. Creazione progetto tramite CLI (2:31)
  • 02. Introduzione struttura progetto modulare: features vs core vs shared (3:42)
  • 03. "Features" modules & lazy loading (8:13)
  • 04. Installare il set di icone: FortAwesome (2:24)
  • 05. Installare Bootstrap SASS (2:51)
  • 06. Personalizzare un tema di Bootstrap con SASS (4:48)
  • 07. Creare la Navigation Bar (6:50)
  • 08. Modulo core e modulo share: forRoot method (6:06)
  • 1 - NGRX - StoreModule.forRoot() (Teoria) (4:17)
  • 2. Installazione NGRX e configurazione Store (2:21)
  • 3. Runtime checks configuration (3:14)
  • 01. Installazione e configurazione router-store con NGRX (2:59)
  • 02. Creare Custom Router Actions (5:42)
  • 03. Router Effects (9:28)
  • 04. Router Selectors (10:28)
  • TIP: un approccio più idiomatico nell'utilizzo del selettore (articolo)
  • GOAL: profilo utente (1:14)
  • 01. Model & mock server REST con json-server (4:06)
  • 02. Profile Service & Environment properties (5:38)
  • 03. Profile Actions (1:45)
  • 04. Profile Effects (6:31)
  • 05. Profile Reducer (12:14)
  • 06. TS TIP: as-syntax vs Partial vs optional-parameters (2:35)
  • 07. NGRX-TIP: export reducer functions & limiti compilazione AoT (4:37)
  • 08. Selectors & createFeatureSelector (4:16)
  • 09. AppState: "tipizzare" lo Store (3:21)
  • 10. Profile component: load & display data (5:46)
  • 11. Profile component: edit data & sync components (9:25)
  • 12. Profile component: skinning (3:48)
  • GOAL: autenticazione e struttura store (3:24)
  • 01. Login Component (5:21)
  • 02. Auth Actions (5:24)
  • 03. Auth service (4:15)
  • 04. Auth Effects: login & logout (19:57)
  • 05. Auth Reducer: login & logout (7:08)
  • 06. Auth selectors (2:33)
  • 07. Gestione Logout (3:36)
  • 08. Guards: protezione route e utilizzo dei selettori (11:15)
  • 09. Autologin: init-effects. azioni e gestione localstorage (10:13)
  • TIP su HttpInterceptor: IMPORTANTE!
  • 10. HTTPInterceptor: selectors (15:50)
  • 11. HTTPInterceptor: gestione errori (3:48)
  • 12. HTTPInterceptor: throwError (3:28)
  • 13. Creazione Direttive strutturali (*ifLogged): protezione DOM (13:38)
  • 14. RXJS TIP: evitare inutili richieste HTTP nel login: switchmap vs exhaustmap (2:01)
  • 01. GOAL e struttura store (4:22)
  • 02. NGRX: Introduzione store "forFeature()" (6:17)
  • 03. Creazione: store for feature (4:32)
  • 04. Combine Reducers con ActionReducerMap (3:12)
  • Prossimi step: nota importante
  • 01. GOAL (2:51)
  • 02. Struttura UI & component-based approach (0:52)
  • 03. UI: componente pannello Clienti (11:47)
  • 04. UI: input, output, ng-class & animations (6:03)
  • 05. UI Children - parte 1: suddividere la UI in componenti (12:39)
  • 06. UI Children - parte 2: creazione header / ADD clients (7:35)
  • 07. UI Children - parte 3: Header, @ViewChild & ChangeDetectorRef (17:04)
  • 08. UI Children - parte 4: Modifica Cliente (1:50)
  • 09. UI Children - parte 5: applicare CSS al wrapper con @HostBinding (3:21)
  • 10. Client Model (2:47)
  • 11. Riassunto e prossimo step (3:35)
  • 01. ClientService & REST API (4:19)
  • 02. Clients Actions (2:05)
  • 03. Clients Effects - Parte 1 (4:47)
  • 04. Clients Effects - Parte 2 (4:12)
  • 05. Clients: Load (3:03)
  • 06. creare un index per i reducers con actionReducerMap (3:13)
  • 07. Clients Reducer (9:11)
  • 08. createFeatureSelector vs createSelector (4:09)
  • 09. Considerazioni finali (2:20)
  • Goal (0:50)
  • introduzione (3:15)
  • HttpStatus: gestione error e success nello store (5:17)
  • Considerazioni su errori e gestione tramite HTTP Interceptor (articolo)
  • HttpStatus: reducer (6:29)
  • HttpStatus: selector (2:47)
  • HttpStatus : UI e visualizzazione errori (4:51)
  • HttpStatus: custom component (2:31)
  • HttpStatus: Gestione messaggi di successo (4:21)
  • HttpStatus: conclusione e riepilogo (2:47)
  • 1. GOAL (1:40)
  • 2. UI state (3:17)
  • 3. UI Actions (1:04)
  • 4. UI Reducers (5:18)
  • 5. UI Selectors (7:58)
  • 6. UI: gestione apertura / chiusura pannelli (7:24)
  • 01. GOAL (0:55)
  • 03. Invoice Model (modello fattura) (1:51)
  • 04. Invoices Actions (8:49)
  • 05. Invoice Form: versione provvisoria (7:57)
  • 06. Inizializzazione stato "invoices" (4:55)
  • 07. Selectors per le fatture & getActiveInvoice (2:16)
  • 08. Effects condizionali e operatore RxJS "withLatestFrom" (10:05)
  • 09. Invoices http service (3:05)
  • 10. Concatenare effects (5:14)
  • 11. Emettere azioni multiple negli effetti (4:18)
  • 12. Reducer update: gestione activeInvoice e addInvoice (4:28)
  • 13. Initializzazione invoice editor e gestione xhr simultanee (17:21)
  • 14. UI: visualizzazione fatture e gestione fattura attiva (9:35)
  • 15. UI: animare il layout sulla base dell'apertura pannelli (7:13)
  • 16. Selectors, reduce ed espressioni: calcolo numero fattura progressivo (11:52)
  • 17. Creare una nuova fattura (3:45)
  • 18. Modificare una fattura (17:34)
  • 19. Cancellare una fattura (5:53)
  • 20. bug fix: delete vs setActive (5:18)
  • 21. Aggiungere un campo "Date" alla fattura (2:15)
  • 22. UI: migliorare il layout del-pannello clienti (4:20)
  • 1. Introduzione al capitolo
  • 3. Migliorare il layout del form (15:14)
  • 4. Aprire i pannelli clienti e dello storico fatture (6:00)
  • 5. Da "template-driven forms" ai Reactive Forms (6:34)
  • 6: Component lifecycle: ngOnChanges (6:51)
  • 7. ReactiveForms: metodi patchValue and reset (1:54)
  • 8. FormArray: gestione prodotti fattura - part 1 (9:17)
  • 9. FormArray: gestione prodotti fattura - part 2 (14:28)
  • 10. FormArray: gestione prodotti fattura - part 3 (3:35)
  • 11. FormArray: calcolo totale prodotti (8:02)
  • 12. FormArray: selezione clienti (8:01)
  • 01. Routing Redirect (0:45)
  • 02. Aggiungere immagini al progetto (2:42)
  • 03. Ottimizzazione performance con la ChangeDetectionStrategy "onPush" (5:33)
  • 04. TIP: barrel index file: import / export modules (6:31)
  • 05. Miglioramento Performance: sottoscrizione manuale agli observable vs async (ngif-as) (3:34)
  • 01. Nested Routes & multiple Containers (7:46)
  • 02. Selettori Compositi (6:40)
  • 03. Router: back action (2:11)
  • 04. CSS TIP: print media query & Angular CSS ViewEncapsulation (3:54)
  • 05. Visualizzazione dati e stampa (10:35)
  • 1. Configurazione modulo "root" vs module "core" (0:36)
  • 2. Runtime checks & immutabilità (2:24)
  • 3. Store "forRoot" vs "forFeature" (1:58)
  • 4. Store Type & actionReducerMap (2:10)
  • 10. Reducer & sintassi JS per restituire oggetti in un reducer (1:08)
  • 11. Reducer & problemi di compilazione AOT (1:33)
  • 20. Actions: passare la minore quantità di informazioni nel payload (4:07)
  • 33. Selectors: sommario (4:37)
  • 34. Effects: sommario (2:12)
  • 35. RXJS TIP: switchmap vs exhaustmap vs concatmap vs mergemap (2:29)
  • 36. Effects: recuperare lo stato con withLatestFrom (2:15)
  • 37. Effects: dispatch multiple actions (2:51)
VIDEO 01

A COSA SERVE UNO STATE MANAGER

Le Single Page Application, al crescere della loro complessità e delle informazioni che devono gestire, con il tempo risultano sempre più difficili da mantenere. L'utilizzo di componenti stateful, l'abuso di pattern come la dependency injection in Angular o le context API di React, tanto per citare un paio di esempi, e l'integrazione di altre tecniche utilizzate per una gestione semplificata dello stato applicativo spesso non sono sufficienti a garantire efficienza e scalabilità nel medio-lungo periodo. Gli state manager, come ad esempio NGRX, ispirato a Redux, offrono delle soluzioni consolidate per una corretta gestione dello stato, purché l'applicazione sia sviluppata seguendo determinati criteri. In questo video cercherò di introdurre la problematica e di descrivere brevemente i vantaggi nell'integrazione del pattern Redux.

...
...
VIDEO 02

NGRX: PRO e CONTRO

Cos'è NGRX? Quali vantaggi ci permette di ottenere? Cosa sono e come funzionano i Redux Dev Tools?
Oltre a comprendere le potenzialità di uno state manager e della sua integrazione in applicazioni front-end, analizzeremo anche gli svantaggi e le difficoltà che ne conseguono.
Nel video vedrete, inoltre, parte dell'applicazione che svilupperemo al termine del corso NGRX

VIDEO 03

DATA FLOW

Tramite l'utilizzo di uno state manager come NGRX non solo sarà possibile separare nettamente la user interface, realizzata in Angular, dalla data architecture, gestita invece da NGRX, rendendo quindi la code base più semplice da mantenere ed efficiente, ma la stessa architettura sarà organizzata in differenti fasi, che analizzeremo in questo video:
Actions: le azioni, effettuate nella maggior parte dei casi dall'utente, che potranno essere tracciate e identificate
Reducers: che si occupano di manipolare lo stato sulla base delle azioni
Effects: gestione separata di side effect come XHR, gestione router, sync con localstorage...
Selectors: recuperare di una porzione di stato

...
...
VIDEO 04

ORGANIZZAZIONE CARTELLE

Al crescere della complessità di un'applicazione, aumenterà ovviamente anche la quantità di files da gestire nel progetto.
L'utilizzo di convenzioni e best practice fornite da un framework "opinionated" come Angular e da uno state manager come NGRX, semplificherà notevolmente il processo di manutenzione, il debug e le operazioni di refactoring, grazie ad una specifica organizzazione di file e cartelle e all'utilizzo di una corretta nomenclatura

VIDEO 05

NGRX Syntax

In questo video analizziamo le API di NGRX 8 con diversi esempi e caso d'uso che faranno ampio uso di Typescript e RxJS:
• organizzazione dello store
• azioni type-safed
• gestione di side "effects", che fanno largo uso di operatori RxJS
• manipolazione stato tramite i "reducer" e l'utilizzo dell'immutabilità
• selectors: recupero delle informazioni dallo stato sfruttando la memoization

...
...
VIDEO 06

STATELESS UI

Per sfruttare al massimo le potenzialità di uno state manager è necessario creare applicazioni front-end quasi totalmente stateless.
Cosa significa? In breve, tutto ciò che riguarda la gestione dello stato e dei side effect (XHR, redirect, ecc.) saranno delegati a NGRX, e solo tramite degli "speciali" componenti, definiti "Container", la user interface potrà comunicare con lo state manager, ricevendo lo stato proprio dal Container tramite proprietà @Input ed emettendo eventi sfruttando gli @Output event emitter. Il "Container" fungerà quindi da ponte tra UI e data architectures.

FEEDBACK

RECENSIONI

Alcune delle recensioni che gli studenti del corso hanno lasciato sulle mie pagine Facebook e LinkedIn

Andrea Giunta

Andrea Giunta

Ho seguito con estremo interesse il corso di "Angular & NGRX” tenuto da Fabio Biondi. Il corso è estremamente interessante, ben strutturato e pratico. Fabio è una garanzia di eccellenza e competenza, ha una grande capacità di esporre argomenti complessi in modo fluido e chiaro I suoi corsi sono un investimento assolutamente positivo

Angelo Albanese

Angelo Albanese

Al solito ben strutturato e chiaro, ma qui vengono addirittura create da zero due app con procedimento spiegato passo a passo e sono inoltre presenti tantissimi consigli sulle best practices da seguire. Ho notato che nei vari corsi spesso mi sorgevano diversi dubbi su determinati argomenti e "magicamente" poco dopo o nel video successivo trovavo la risposta a tutto, sintomo di intuizione delle difficoltà che possono avere gli studenti e di grande preparazione da parte di Fabio

Federico Gambarino

Federico Gambarino

Ho acquistato il corso avanzato di Fabio su angular, rxJs e ngRx e posso affermare con convinzione che le notevoli conoscenze tecniche, unite a un'ottima capacità comunicativa rendono Fabio un'eccellenza a livello italiano. Nonostante fosse interamente da remoto - e da remoto è tutto più difficile - è stato in grado di mostrare e trasmettere molti concetti utili e interessanti, oltre che disponibilità e passione

FAQ

Hai dubbi o domande? Contattami

Gli accessi simultanei alla piattaforma da diversi IP verranno bloccati. Nel caso fossi interessato all’acquisto di più di una licenza d’uso abbiamo previsto delle promozioni:

• 10% per 2 studenti
• 20% per 4 studenti
• 30% per 6 studenti
• 50% per 10 studenti
• 60% per più di 20 studenti
Sono sicuro che apprezzerai i contenti del corso ma se non fossi soddisfatto potrai comunque essere rimborsato totalmente entro 30 giorni dall'acquisto
In fase di acquisto, è necessario inserire la partita iva (utilizzando IT come prefisso, ad es. IT1234567890) cliccando sul pulsante AGGIUNGI PARTIVA IVA e registrare l'account con il nome utente (solitamente la ragione sociale) che si desidera visualizzare nella ricevuta di acquisto.
Teachable, la piattaforma americana utilizzata per erogare i corsi, si occupa di tutto il processo di pagamento e di mettere le ricevute di acquisto.
Essendo un sistema di pagamento extra EU, nel caso di acquisto con partita iva, l'iva non sarà applicata e quindi sarà tolto il 22% dal totale.
Prima di effettuare l'ordine guarda un esempio di fattura che riceverai.
Il mio corso è fruibile tramite la piattaforma Teachable, azienda con sede negli Stati Uniti. Per questo motivo: se richiedi la fattura e inserisci la partita iva in fase di acquisto NON verrà applicata l'iva. Al contrario, il costo per i privati sarà comprensivo di IVA
Guarda un esempio di fattura
La licenza d’uso non ha nessuna scadenza. Una volta acquistato il corso potrai fruire dei contenuti del corso ed eventuali aggiornamenti senza limiti di tempo.
Scrivimi su Facebook, LinkedIn o utilizza l'apposito form di contatto
Sono presente su tutti i principali social network. Trovi i link nella barra di navigazione in alto o nel footer.
Per tutti gli aggiornamenti puoi seguirmi su Telegram e non dimenticare di iscriverti alla newsletter che trovi in homepage

Docente

FABIO BIONDI

Fabio Biondi, Microsoft MVP e Google Developer Expert, è uno sviluppatore freelance con più di 15 anni di esperienza nella creazione di applicazioni web enterprise.

Speaker in numerosi eventi nazionali, ha inoltre fondato diverse community italiane che si occupano di Javascript, Angular e React (~30000 membri)

Attualmente si occupa principalmente di formazione e consulenza su Javascript, Typescript, Angular, React, Svelte, Redux, NGRX e RxJS, Git.

Logo Google Expert and Microsoft MVP
...

Acquista il corso

Acquista il corso per accedere al materiale dove e quando vuoi...
per sempre!

SINGOLO UTENTE
1190 + iva

Accesso a Vita

Corso Angular & RxJS

Corso Angular & NGRX

270 video

26 ore di lezione

Aggiornamenti

30 ggSoddisfatto o Rimborsato

ACQUISTA

TEAMS & ACQUISTI MULTIPLI

Sconti fino al 60% per team e aziende che necessitano di acquistare più di una licenza d'uso

CONTATTAMI