Indice - Programmare applicazioni JavaScript
Transcript
Indice - Programmare applicazioni JavaScript
Sommario Introduzione..........................................................................................VII Capitolo 1 - La rivoluzione di JavaScript...................................................1 I vantaggi di JavaScript 2 Le prestazioni 2 Gli oggetti 2 La sintassi 3 Le funzioni di prima classe 3 Gli eventi 3 La riutilizzabilità 4 Il risultato sulla Rete 4 Anatomia di una tipica applicazione JavaScript moderna 4 L’infrastruttura4 JSON: archiviazione di dati e comunicazione 5 Gli archivi di dati NoSQL 6 I servizi web RESTful JSON 6 Capitolo 2 - Le funzioni............................................................................9 Ridurre al minimo gli effetti collaterali La definizione delle funzioni Le espressioni di funzione dotate di nome Le lambda Le espressioni di funzione invocate immediatamente Il contesto dei metodi L’ambito della funzione L’hoisting Le chiusure Progettare i metodi I parametri con nome Il polimorfismo delle funzioni I tipi generici e il polimorfismo delle raccolte Il concatenamento dei metodi e le API Fluent La programmazione funzionale Le funzioni senza stato (ossia le funzioni pure) L’applicazione parziale e il currying 10 12 14 16 18 20 22 22 25 27 28 29 32 35 36 38 39 III Le operazioni asincrone I callback Le promesse e i deferred Conclusione 41 41 42 44 Capitolo 3 - Gli oggetti...........................................................................47 L’ereditarietà classica è obsoleta Lo stile fluido di JavaScript I prototipi I prototipi delegati Clonare prototipi Il pattern flyweight La creazione degli oggetti Le factory L’ereditarietà prototipale con gli stamp Conclusione 48 51 53 53 55 57 58 61 64 68 Capitolo 4 - I moduli..............................................................................71 I principi della modularità Le interfacce Il module pattern La definizione asincrona dei moduli I plug-in I moduli in stile Node npm I moduli ES6 Costruire codice lato client con CommonJS, npm, Grunt e Browserify Definire l’applicazione L’implementazione delle funzionalità Il bundling e il deployment Conclusione 72 73 77 78 80 82 83 86 87 87 89 92 96 Capitolo 5 - La separazione delle competenze.........................................97 Le competenze lato client La gestione dei moduli Gli eventi Model View Controller/MV* La presentazione e la manipolazione del DOM Le competenze lato server Introduzione a Node e a Express Conclusione 98 100 104 111 114 122 122 131 Capitolo 6 - Il controllo di accesso.......................................................133 L’autenticazione133 Le password 133 Credential 137 L’autenticazione multifattore 139 L’autenticazione federata e delegata 141 L’autorizzazione143 IV Programmare applicazioni JavaScript Autorizzare le applicazioni OAuth 2.0 Conclusione 144 145 146 Capitolo 7 - Il logging..........................................................................147 Il debug Le operazioni sui server La sicurezza L’auditing La business analytics Il fattore virale Una lista dei dati di cui eseguire il logging Il logging delle richieste Eseguire il logging degli errori Un esempio di output di log Eseguire il logging degli avvisi dei servizi Gli obiettivi del logging Il profiling e l’instrumentation Il logging degli eventi lato client Decifrare i dati Conclusione 147 149 149 150 150 151 151 152 156 158 161 161 162 163 164 164 Capitolo 8 - Costruire API RESTful........................................................165 Usabile Un obiettivo chiaro La coerenza Un’API che si spiega da sola: l’ipermedialità Le affordance L’HATEOAS HTML come tipo di media per le API Jade Jiron Le API reattive Ottimizzare la velocità Conclusione 166 166 168 176 176 177 178 179 181 183 185 186 Capitolo 9 - Il feature toggle.................................................................187 Organizzare le funzionalità 187 La scala delle funzionalità 188 I gruppi di funzionalità 188 La durata di vita di una funzionalità 189 Lo sviluppo 189 Lo staging 189 I test di produzione 189 Il rollout delle funzionalità 190 L’attivazione predefinita 190 La piena integrazione 190 L’implementazione190 Conclusione 194 Sommario V Capitolo 10 - L’internazionalizzazione...................................................197 Conclusione 199 Appendice A - Guida di stile di JavaScript.............................................201 Indice analitico...................................................................................223 VI Programmare applicazioni JavaScript