‫Narratore: Ora, prima di immergerci nel codice NodeJS, facciamo
‫una panoramica di alto livello
‫su cosa sia effettivamente NodeJS, per
‫cosa lo usiamo e perché utilizziamo Node
‫invece di altre tecnologie.
‫Quindi, la definizione ufficiale è
‫che NodeJS è un
‫runtime JavaScript basato sul motore JavaScript V8 open source di Google.
‫Ora, cosa significa in realtà?
‫Bene, iniziamo cercando di capire cosa
‫sono effettivamente il
‫Runtime JavaScript e il motore V8.
‫Quindi, probabilmente hai già usato JavaScript
‫prima e probabilmente era sempre solo all'interno di un browser, giusto?
‫Poiché qualsiasi browser comprende nativamente HTML, CSS
‫e JavaScript e non importa se scrivi JavaScript
‫vanilla o un framework JavaScript
‫come codice React o Angular, è
‫tutto solo
‫JavaScript che viene eseguito direttamente nel browser.
‫Quindi, in questo caso,
‫il browser è quindi JavaScript Runtime.
‫Ma cosa accadrebbe se potessimo togliere JavaScript
‫dal browser ed eseguire
‫semplicemente o il codice JavaScript da qualche
‫altra parte senza tutte le restrizioni che abbiamo nel browser?
‫Bene, si scopre che in realtà possiamo.
‫E la soluzione per questo,
‫come puoi immaginare, si chiama NodeJS e quindi Node
‫JS è solo un altro JavaScript Runtime.
‫È proprio come un contenitore, come un ambiente,
‫in cui un programma scritto
‫in JavaScript può essere eseguito, ma al di fuori di qualsiasi browser.
‫Va bene, in realtà è un po'
‫più complesso di così, ovviamente, ma per ora è abbastanza.
‫Ora, chi esegue effettivamente il codice
‫se non il browser?
‫Ed è qui che entra in
‫gioco il motore V8 sviluppato da Google.
‫Perché è esattamente qui che
‫il codice JavaScript verrà analizzato ed eseguito in NodeJS, ok?
‫Quindi, spero che ora la definizione di
‫NodeJS come JavaScript Runtime sul motore JavaScript V8 abbia molto più
‫senso e, ancora una volta, questa è
‫solo una panoramica di alto
‫livello su cosa sia Node e come funziona.
‫Entreremo in molti dettagli su come
‫Node funziona davvero dietro le quinte nella
‫prossima sezione, ma a questo punto, voglio solo che
‫tu abbia una rapida panoramica
‫in modo che tu possa iniziare ad apprendere
‫i fondamenti di NodeJS in pratica durante tutto questa sezione.
‫Ad ogni modo, ora che
‫abbiamo JavaScript al di fuori
‫del browser in una sorta di
‫ambiente autonomo che è solo NodeJS, possiamo fare tante
‫altre cose con JavaScript che prima erano
‫completamente impossibili come
‫accedere al file system, o
‫migliori capacità di rete non sono
‫possibili con NodeJS e tutti questi fattori
‫insieme ci danno le condizioni perfette per utilizzare NodeJS come server
‫web, il che significa che ora possiamo
‫finalmente utilizzare JavaScript sul lato server dello sviluppo web
‫per creare applicazioni di rete veloci
‫e altamente scalabili per alimentare il back-end
‫tutto per siti web o applicazioni web.
‫E questo è assolutamente
‫fantastico e rivoluzionario per lo sviluppo web.
‫Quindi, diamo ora un'occhiata ad alcuni casi d'uso
‫per Node e perché è così perfetto per lo sviluppo back-end.
‫E la prima cosa di cui
‫dobbiamo parlare è
‫il fatto che le applicazioni Node sono così veloci e
‫così scalabili perché NodeJS è a
‫thread singolo basato su un modello I/O non bloccante
‫guidato dagli eventi che rende NodeJS molto leggero ed efficiente.
‫Ora, questo, ovviamente, suona molto complicato, lo so,
‫ma ancora una volta parleremo esattamente di cosa
‫significa tutto questo un po'
‫più avanti nel corso.
‫Ma, per ora, tieni presente
‫che Node è perfetto per creare applicazioni
‫web ad alta intensità di dati super veloci e scalabili.
‫E questo rende NodeJS una soluzione perfetta per la
‫creazione di tutti i diversi
‫tipi di applicazioni come la creazione di un'API
‫con un database dietro e preferibilmente un database NoSQL non relazionale come MongoDB
‫e questo è esattamente ciò che faremo più
‫avanti in questo corso mentre tuffati sempre più in profondità in NodeJS.
‫Ma ci sono, ovviamente, tutti i tipi di
‫altre app che possiamo creare come applicazioni
‫di streaming di dati come YouTube o Netflix, app di
‫chat in tempo reale o persino applicazioni web
‫lato server in cui l'intero contenuto viene semplicemente
‫generato direttamente sul server, quindi,
‫come vedi, le possibilità sono davvero infinite.
‫Ma in realtà esiste anche un tipo di app
‫che non dovremmo creare con Node.
‫E questo è quando la
‫nostra app ha bisogno di un'elaborazione super
‫pesante sul lato server come avere manipolazioni di immagini, conversione
‫di video, compressione di file o qualcosa del genere, va bene.
‫E imparerai perché è così una volta che ci addentreremo più
‫a fondo nel funzionamento di Node.
‫Quindi, in questo caso,
‫è meglio usare qualcosa come Ruby on Rails, PHP o Python.
‫Poiché NodeJS non è stato
‫sviluppato per questi casi d'uso e sebbene ci siano
‫soluzioni per affrontarli, dovremmo sempre usare
‫lo strumento giusto per l'attività da svolgere.
‫Ok, quindi questi sono i tipi di
‫applicazioni che possiamo e non possiamo creare utilizzando NodeJS.
‫E se scegli di utilizzare Node, beh,
‫allora sei in buona compagnia
‫perché molte importanti aziende come Netflix, Uber, PayPal,
‫Ebay e molte altre ancora hanno già iniziato a utilizzare
‫NodeJS, il che dimostra davvero che la tecnologia è
‫abbastanza stabile a questo punto da essere utilizzato in produzione.
‫Ora, ovviamente ci sono più ragioni per usare Node, e
‫la più grande è probabilmente che usare lo stesso
‫linguaggio in tutto il tuo stack sia
‫sul front-end che sul back-end
‫è molto più facile per te o per il tuo team.
‫Primo, non devi
‫imparare un nuovo linguaggio di programmazione
‫per costruire il tuo back-end e, inoltre,
‫non devi continuare a passare da
‫un linguaggio all'altro, il che renderà l'intero processo
‫di costruzione più veloce ed efficiente.
‫Credimi, è davvero sorprendente
‫essere in grado di utilizzare JavaScript per
‫creare l'intera applicazione dall'inizio alla fine.
‫È assolutamente fantastico davvero.
‫E un altro ottimo
‫motivo per usare Node è che esiste un'enorme libreria di
‫pacchetti o moduli open source, come possiamo
‫anche chiamarli, disponibile per tutti gratuitamente.
‫Si chiama NPM e probabilmente ne hai sentito parlare
‫o l'hai già usato.
‫E, naturalmente, inizieremo anche a
‫utilizzare i pacchetti proprio nella sezione.
‫E, infine, è anche bello
‫sapere che esiste un'enorme comunità attiva
‫di sviluppatori Node là fuori che
‫migliora costantemente NodeJS e aiuta i principianti come te.
‫E così puoi davvero fare affidamento sulla tecnologia
‫per tutti i tuoi progetti negli anni a venire.
‫Ok, questa è stata una breve introduzione
‫e panoramica di NodeJS e di alcuni dei suoi casi d'uso.
‫Quindi, per il resto di
‫questa sezione, ora useremo Node per
‫creare un server web molto semplice
‫e costruire un'API estremamente semplice, in modo che tu
‫possa familiarizzare con
‫i principi di base dello sviluppo di Node.