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