CONTENUTI
Modulo 1: Modern JavaScript e TypeScript
- Introduzione a Modern JavaScript e TypeScript
- Moduli: import/export, organizzazione del codice
- Novità su array, oggetti e stringhe
- Fat arrow functions, template string, destructuring
- Classi, decorators e concetti OOP in TypeScript
- Types e interfaces: tipizzazione forte e contratti
- Gestione del codice con npm e tsc
Modulo 2: Architettura e Servizi
- Concetto di component-based architecture
- Design pattern: Singleton, Factory, Repository
- Dependency Injection: principi e implementazione manuale
- Organizzazione di servizi RESTful
- Creazione di un mock server JSON per testare API
- Comunicazione client-server con fetch API
- CRUD operations e gestione del data model
Modulo 3: Gestione dei dati, DOM e Bundler
- Forms: binding 1-way e 2-way
- Validazione dei form e gestione degli errori
- Accesso al DOM con JavaScript/TypeScript puro
- RxJS e concetto di Observable
- Pipes/filtri: trasformazioni su date, numeri e stringhe
- Bundler e strumenti di build
- Concetto di bundling e transpiling
- Differenza tra Webpack, Rollup, Parcel, esbuild, Vite
- Gestione degli asset (CSS, immagini, font)
- Tree-shaking e code splitting
- Configurazione di un progetto con un bundler moderno
- Creazione di custom utilities riutilizzabili
Modulo 4: Applicazioni reali
- Architetture stateless e data flow unidirezionale
- Ciclo di vita di un componente (concetto generale)
- Gestione errori ed eccezioni
- Integrazione di librerie di terze parti (Highcharts, Leaflet, GSAP)
- Routing e navigazione in una SPA senza framework (History API, hash routing)
- Modularità: organizzazione del progetto con moduli ES e TypeScript
- Best practices di organizzazione del codice
Modulo 5: Sicurezza e Testing
- Autenticazione e login con JWT
- Utilizzo di REST API protette da token
- Http interceptors (middleware per richieste)
- Gestione errori CORS, preflight e OPTIONS
- Introduzione ai test: unit test vs end-to-end
- Framework di test (Jest, Mocha)
- Mocking dependencies e spies
- Testing del DOM e delle funzioni pure