Back to top

Le novità di Angular 9

La rivoluzione Ivy è un upgrade generale del framework

E’ arrivato Angular 9! La nuova versione coinvolge diversi aspetti del framework, da Angular Material alla Command Line Interface(CLI). Questa versione integra di default il nuovo compilatore Ivy, il nome in codice del “next-generation compilation and rendering pipeline“.

Per aggiornare alla versione 9 potete visitare il sito update.angular.io, vi mette a disposizione un form da compilare indicando da quale versione migrate e vi indica cosa dovete fare.

Ivy

Come abbiamo già indicato, con la versione 9 di Angular, tutte le applicazioni fanno uso del compilatore Ivy di default, ciò si traduce in numerosi vantaggi che raccogliamo in una lista per brevità e che dettaglieremo nei prossimi paragrafi:

  • Riduzione delle dimensioni delle applicazioni
  • Rapidità dei test
  • Migliore capacità di debugging
  • Migliore “binding” tra classi e stili CSS
  • Migliore type checking
  • Più comprensibili errori di compilazione
  • Migliori tempi di compilazione ed abilitazione dell’Ahead-of-time
  • Migliore internazionalizzazione

Riduzione delle dimensioni delle applicazioni

Il compilatore Ivy rimuove automaticamente componenti di Angular che non vengono utilizzate, il cosiddetto tree-shaking, permettendo di ridurre le dimensioni delle applicazioni.

In buona sostanza, rispetto alla versione 8, le applicazione piccole hanno un miglioramento del 40% delle dimensioni, quelle medie hanno minimi miglioramenti (intorno al 2%) e quelle grandi e complesse hanno un miglioramento tra il 25% ed il 40%

Rapidità dei test

E’ stato ristrutturato lo strumento TestBed per renderlo più efficiente. In pratica ora TestBed non ricompila ogni singola componente per ogni test ma la compila solo se la componente è stata modificata, ciò si traduce in un miglioramento delle performance dei test tra il 40% ed il 50%.

Migliore capacità di debugging

Quando un’applicazione viene utilizzata in Dev Mode è possibile utilizzare l’oggetto ng per effettuare il debugging, in pratica:

  • puoi chiedere ad Angular di accedere ad istanze delle tue componenti, delle direttive e di molto altro
  • puoi richiamare metodi e stati
  • puoi richiamare i risultati di un change detection con applyChanges
  • è stato migliorata la stack trace ExpressionChangedAfterItHasBeenCheckedError inserendo i link ai riferimenti

Migliore “binding” tra classi e stili CSS

Ora non sono possibili i conflitti nell’applicazione degli stili perchè sono essere programmati in maniera consistente ed efficace. In pratica prima veniva applicato l’ultimo binding valutato, ora l’ordine di precedenza è consistente e verrà applicato il più specifico ([style.color] sarà superiore a [style]). Le regole delle precedenze sono disponibili nella guida ufficiale.

Sono state lasciate invariate, per compatibilità, le funzioni ngStyle e ngClass.

Ora è possibile effettuare il bind di Variabili CSS anche definite Custom Properties.

Migliore type checking

Il compilatore di Angular ora effettua numerose verifiche ed applica regole più stringenti per aiutare i team a trovare i bug durante il processo di sviluppo. In pratica sono state implementate due flag per restringere i controlli:

  • fullTemplateTypeCheck : il compilatore verifica qualsiasi cosa nel template ( ngIf, ngFor, ng-template, ecc…)
  • strictTemplates: viene attivato il più stringente controllo

Puoi trovare maggiori informazioni sulla guida ufficiale.

Più comprensibili errori di compilazione

Fa parte del miglioramento sullo stack di debug e come già indicato viene semplificato il debug con l’aggiunta di utili informazioni allo stack di errore. Per es. potete andare al seguente link.

Migliori tempi di compilazione ed abilitazione dell’Ahead-of-Time (AOT)

Grazie a Ivy è stato possibile raggiungere un 40% di miglioramento nelle performance di compilazione. Questo può dire che anche i build AOT sono più veloci e vengono forniti anche in ambito dev-mode, ciò vuol dire che anche “ng serve” beneficia dei controlli come se l’applicazione fosse in produzione migliorando sensibilmente l’esperienza degli sviluppatori.

Contestualmente è stata deprecata la variabile entryComponents.

Migliore internazionalizzazione

Ora se sviluppi per più lingue puoi beneficiare di miglioramento di 10 volte delle performance di build perchè il processo di build della componente internazionale è stato spostato più avanti.

Glue Labs e Angular

Utilizziamo Angular dalla sua nascita, realizziamo applicazioni, forniamo formazione avanzata e assistenza specialistica in modalità body rental, training on job e con piani di supporto tecnico. Contattaci subito e senza impegno per un preventivo gratuito.

Casi di Successo

Sono tante le Grandi Aziende e Società IT che usano le nostre soluzioni Formazione Avanzata e Body Rental insieme alla consulenza specializzata per migliorare i propri dipendenti, i propri servizi interni e verso terzi.

Inizia ora il tuo progetto

CONTATTI

Scrivici dal form di contatto

Tel +39 06 56549766
Fax +39 06 21122581

Mail: info@glue-labs.com
Pec: gluelabs@legalmail.it

Dove Siamo
Roma: Piazza Don Sturzo 15
Padova: Via Savonarola 217
Milano: Via Lazzaretto 19
Torino: P.zza XVIII Dicembre 5

Nome*

E-mail*

Telefono(per un contatto più rapido)

Come possiamo aiutarti?

Altro che vuoi dirci?

Inviando i tuoi dati accetti le condizioni sulla privacy. Li useremo per rispondere alle tue domande e richieste.

TOP

Articoli