SlideShare a Scribd company logo
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Node.js
Dimmi con quale contorno ti posso mangiare?
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Node.js: introduzione
Va detto che non sapevo come iniziare queste slide, quindi
vediamo di improvvisare un po’ una piccola introduzione tanto
per capire di che cosa si tratta.
Queste slide nascono dopo aver ricevuto una serie di domande
attraverso i vari social, ma anche dopo aver discusso con i miei
amici e colleghi del portale InsiDevCode (
http://www.insidevcode.eu/). Quindi all'interno di queste pagine,
andremo a vedere: che cos'è Node.js, a cosa serve e poi tante
altre informazioni.
Penso di avervi detto tutto e mi auguro di avervi invogliato a
leggere quanto segue, per le lamentele, basta commentare qui
sotto oppure avendo il mio nome e cognome, cercatemi nei vari
social network per una chiacchierata al riguardo.
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Si comincia apri la mente e attivi i neuroni necessari
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Che cos'è Node.js?
Ciao Flavius. Senti oggi cercando in rete alcune informazioni mi sono imbattuto in
alcuni annunci di lavoro dove si parlava di Node.js e poi ho visto anche alcuni tuoi
tweet che parlavano di questa cosa. Node.js è una versione di JavaScript?
Ciao amico. Allora Node.js è si più o meno collegato a JavaScript, anche se
hanno poche cose in comune. Infatti Node.js è un framework event-driven, open
source, cross-platform per le applicazioni server-side e di rete. Quindi le
applicazioni scritte attraverso Node.js possono essere eseguite su Mac OS X,
GNU/Linux, Windows e FreeBSD.
La piattaforma è basata sul JavaScript Engine V8, che è il runtime di Google
utilizzato anche da Chrome/Chromium.
Se vogliamo parlare di una caratteristica principale attorno cui Node.js gira, sta
nella possibilità di offrire l'accesso alle risorse del sistema operativo in modalità
event-driven e non sfruttando il classico modello basato su processi o thread
concorrenti.
Diciamo che Node.js va a realizzare un piccolo ambiente host locale, in cui far
eseguire le applicazioni scritte in JavaScript. Esso fornisce tutte le librerie e
feature che solitamente si trovano all'interno di un comune browser.
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Che cos'è Node.js?
Per concludere questa presentazione del Node.js, ti dico che ha un
comportamento asincrono, durante le attese di una certa azione e il runtime può
gestire qualcos'altro.
Ecco un esempio in questo schema:
Altre Info Qui
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Che cos'è Node.js?
Si può riassumere tutto questo in questi semplici punti:
Node.js è una piattaforma basata su JavaScript Engine V8, motore di Google che
interpreta javascript:
●facile approccio per gli sviluppatori HTML5
●poche risorse richieste
●programmazione single thread
●webserver scriptabile in js
●perfetto per applicazioni data-intensive
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Hai dei dubbi...!?! Vai avanti
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Perchè hanno progettato Node.js?
Bella come seconda domanda, vediamo di rispondere in modo più veloce e semplice.
Come tutto quello che viene progettato o inventato, anche Node.js è stato pensato per facilitare la realizzazione
di applicazioni web. Cioè Node.js nasce per creare programmi che funzionano come server.
Va detto che questa cosa è molto interessante e intelligente, perchè vuol dire che tu come sviluppatore puoi
realizzare un'applicazione lato server o lato cliente (cioè la parte che gira all'interno del browser dell'utente)
utilizzando sempre lo stesso linguaggio di programmazione, cioè JavaScript.
Quindi con Node.js si risparmia tempo e fatica, oltre che linguaggi in meno da comprendere e studiare.. In più le
applicazioni sono veloci.
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Siamo sicuri che grazie a Node.js, le applicazioni scritte in
JavaScript sono più veloci?
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Node.js benchmark
Diciamo che tu fai bene a dubitare, perchè come ben sai JavaScript è un linguaggio interpretato, ma questo non
vuol dire che sia lento.
Secondo alcuni test svolti, per controllare la velocità, hanno restituito dati molto interessanti. Infatti, le
applicazioni scritte in JavaScript ed eseguite con Node.js, hanno superato quelle che giravano all'interno di
Nginx (un server altamente ottimizzato).
Ulteriori dettagli a questo indirizzo
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Non ci credo. Com'è possibile questa cosa?
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Node.js benchmark
Si pure io sono rimasto sorpreso quando ho letto queste cose. Vediamo le due ragioni principali per cui questi
risultati sono così "eclatanti".
In primis abbiamo JavaScript che si sta evolvendo e aggiornando, diventando sempre più importante nel grande
mondo del Web.
Due visto che questo linguaggio è diventato sempre più utilizzato, ecco che i vari sviluppatori di browser hanno
deciso di creare ed inserire all'interno di essi motori in grado di eseguire in modo molto più veloce il codice
scritto in JavaScript.
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
JavaScript Engine V8?!? Motore Google?!?
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Aspetta. Quindi JavaScript Engine V8 è il motore di Google?
Yap. Hai capito molto bene. JavaScript Engine V8 è l'engine il motore JavaScript realizzato da Google e inserito
all'interno del suo browser Chrome e anche Chromium. Per un buon periodo questo motore è stato il più veloce
in circolazione, oltre a quello più stabile.
In più JavaScript Engine V8 era ed è ancora Open Source, questo significa che se vuoi accedere a tutto il suo
codice sorgente e poi decidi di utilizzarlo all'interno del tuo progetto o meglio applicazione web differente, fuori
dal browser, lo puoi fare liberamente.
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Quindi Node.js è un motore JavaScript?
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Aspetta. Quindi JavaScript Engine V8 è il motore di Google?
Si. Una delle parti importanti di Node.js sta nel possedere questo motore JavaScript all'interno del suo cuore.
Questa cosa fa si che un'applicazione o programma scritto in JavaScript giri in modo così veloce, anche se
questo linguaggio è interpretato.
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Come fanno a rendere Node.js così veloce?
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Come fanno a rendere Node.js così veloce? (risposta)
Se parliamo dei nuovi computer, abbiamo dalla nostra il fattore della velocità e potenza della memoria RAM e la
CPU, seguita poi dai dispositivi di storage SSD, che combinati insieme ci danno una grande potenza e velocità
di calcolo.
Però non sempre questo è valido, perchè esistono ancora computer lenti e dispositivi di storage lenti, così come
la stessa rete Internet non è così veloce. Ecco che in questo caso le applicazioni diventano lente.
Tutto questo indica allo sviluppatore che per velocizzare l'esecuzione della sua applicazione non deve pensare
solo agli algoritmi utilizzati, ma deve tenere molto conto dell'ottimizzazione I/O (input/output)
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Mi confondi, si può ottimizzare l'I/O (input/output)?
Io pensavo che l'I/O è condizionato dalla velocità dell'hardware, non dal software.
Alt... Node.js non cerca di ottimizzare l'input/output del tuo programma, ma ha lo scopo di impedire che esso
impedisca al resto dell'applicazione di continuare a lavorare. Ti ho confuso ehee !?!
Per farti capire che cosa volevo dire, ti faccio un piccolo esempio.
Tu sei in coda alla posta. La signora a un certo punto chiama te e ti chiede che cosa ti serve, tu spieghi a lei che
cosa vuoi e lei ti fornisce un modulo da compilare, ti metti davanti a lei e compili il modulo. In questo modo la
fila dietro di te aspetta, qualcuno comincerà a spazientirsi e vi manderà a quel paese ad entrambi.
Ed ecco che adesso interviene Node.js. Ossia tu fai la tua richiesta, solo che una volta ricevuto il modulo da
compilare e la tua bella penna, vieni invitato a compilarlo su un tavolo vicino. In questo modo mentre tu finisci di
compilare, la signora può prendere in gestione il restante delle persone in coda. Ed ecco che così non ti
manderà nessuno a quel paese.
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Un piccolo schema
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Intelligente come cosa, ma non è un pò complicato tutto questo lavoro?
Ufficialmente si. Tutto questo lavoro di delega e tener traccia di tutti i vari task è molto complicato.
Va anche detto che tutti i sistemi operativi integra all'interno del loro cuore il supporto per questo tipo di lavoro,
però molto spesso è molto difficile da utilizzare. Quindi ecco che Node.js interviene nel nostro aiuto.
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Quindi a cosa serve Node.js?
Lo sapevo che mi facevi questa domanda così secca. Anzi la stavo aspettando da un pò.
Adesso che hai capito che cos'è Node.js, devi giustamente sapere a che cosa serve.
Node.js serve per semplificare la realizzazione di applicazioni di rete, per esempio: programmi di chat, giochi on-
line o Server Web; che possono gestire molti utenti alla volta in modo più veloce e diretto di prima.
In questo modo tutto l'applicazione, sia nella parte front-end e back-end, può essere scritta interamente con un
solo linguaggio, cioè JavaScript.
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Node.js >>> FINE
Finisce qui la spiegazione... Ecco un piccolo programma scritto proprio utilizzando JavaScript e Node.js
Leggi Qui
Autore: Flavius Florin Harabor
e-mail: ffinformaticus@gmail.com
Node.js >>> Cose Utili
Bene penso di aver capito che cos'è e a che cosa serve Node.js. Però mi puoi dare qualche link utile o indicarmi
alcuni libri che posso acquistare?
Certamente, ecco qua alcuni link e alcuni titoli di alcuni libri, clicca sopra e continua ad informarti su questo
argomento. Mi auguro di esserti stato utile e ci risentiamo la prossima volta, magari parlando dello stesso
argomento in modo molto più tecnico.
Link (clicca sul link):
● https://nodejs.org/
● https://code.google.com/p/v8/
● http://en.wikipedia.org/wiki/Node.js
● http://www.hostingtalk.it/lezione-1-node-js-introduzione_-c000000ge/
● http://www.christianpalazzo.org/breve-introduzione-node-js-e-sua-configurazione-con-apache/
● https://blog.udemy.com/learn-node-js
● http://www.slideshare.net/appdynamics/app-d-anatomymodernnodejsposterinside
Libri (clicca sulla voce):
Node.js: Creare applicazioni web in JavaScrip (Guida completa)
Node.js, MongoDB, and AngularJS Web Development (Developer's Library)
Node.js in Action
Node.js the Right Way: Practical, Server-Side JavaScript That Scales
Learning Node.js: A Hands-On Guide to Building Web Applications in JavaScript
Beginning Node.js
Node.js Design Patterns
Node.js for PHP Developers: Porting PHP to Node.js

More Related Content

Node js: che cos'è e a che cosa serve?

  • 1. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com
  • 2. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Node.js Dimmi con quale contorno ti posso mangiare?
  • 3. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Node.js: introduzione Va detto che non sapevo come iniziare queste slide, quindi vediamo di improvvisare un po’ una piccola introduzione tanto per capire di che cosa si tratta. Queste slide nascono dopo aver ricevuto una serie di domande attraverso i vari social, ma anche dopo aver discusso con i miei amici e colleghi del portale InsiDevCode ( http://www.insidevcode.eu/). Quindi all'interno di queste pagine, andremo a vedere: che cos'è Node.js, a cosa serve e poi tante altre informazioni. Penso di avervi detto tutto e mi auguro di avervi invogliato a leggere quanto segue, per le lamentele, basta commentare qui sotto oppure avendo il mio nome e cognome, cercatemi nei vari social network per una chiacchierata al riguardo.
  • 4. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Si comincia apri la mente e attivi i neuroni necessari
  • 5. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Che cos'è Node.js? Ciao Flavius. Senti oggi cercando in rete alcune informazioni mi sono imbattuto in alcuni annunci di lavoro dove si parlava di Node.js e poi ho visto anche alcuni tuoi tweet che parlavano di questa cosa. Node.js è una versione di JavaScript? Ciao amico. Allora Node.js è si più o meno collegato a JavaScript, anche se hanno poche cose in comune. Infatti Node.js è un framework event-driven, open source, cross-platform per le applicazioni server-side e di rete. Quindi le applicazioni scritte attraverso Node.js possono essere eseguite su Mac OS X, GNU/Linux, Windows e FreeBSD. La piattaforma è basata sul JavaScript Engine V8, che è il runtime di Google utilizzato anche da Chrome/Chromium. Se vogliamo parlare di una caratteristica principale attorno cui Node.js gira, sta nella possibilità di offrire l'accesso alle risorse del sistema operativo in modalità event-driven e non sfruttando il classico modello basato su processi o thread concorrenti. Diciamo che Node.js va a realizzare un piccolo ambiente host locale, in cui far eseguire le applicazioni scritte in JavaScript. Esso fornisce tutte le librerie e feature che solitamente si trovano all'interno di un comune browser.
  • 6. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Che cos'è Node.js? Per concludere questa presentazione del Node.js, ti dico che ha un comportamento asincrono, durante le attese di una certa azione e il runtime può gestire qualcos'altro. Ecco un esempio in questo schema: Altre Info Qui
  • 7. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Che cos'è Node.js? Si può riassumere tutto questo in questi semplici punti: Node.js è una piattaforma basata su JavaScript Engine V8, motore di Google che interpreta javascript: ●facile approccio per gli sviluppatori HTML5 ●poche risorse richieste ●programmazione single thread ●webserver scriptabile in js ●perfetto per applicazioni data-intensive
  • 8. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Hai dei dubbi...!?! Vai avanti
  • 9. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Perchè hanno progettato Node.js? Bella come seconda domanda, vediamo di rispondere in modo più veloce e semplice. Come tutto quello che viene progettato o inventato, anche Node.js è stato pensato per facilitare la realizzazione di applicazioni web. Cioè Node.js nasce per creare programmi che funzionano come server. Va detto che questa cosa è molto interessante e intelligente, perchè vuol dire che tu come sviluppatore puoi realizzare un'applicazione lato server o lato cliente (cioè la parte che gira all'interno del browser dell'utente) utilizzando sempre lo stesso linguaggio di programmazione, cioè JavaScript. Quindi con Node.js si risparmia tempo e fatica, oltre che linguaggi in meno da comprendere e studiare.. In più le applicazioni sono veloci.
  • 10. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Siamo sicuri che grazie a Node.js, le applicazioni scritte in JavaScript sono più veloci?
  • 11. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Node.js benchmark Diciamo che tu fai bene a dubitare, perchè come ben sai JavaScript è un linguaggio interpretato, ma questo non vuol dire che sia lento. Secondo alcuni test svolti, per controllare la velocità, hanno restituito dati molto interessanti. Infatti, le applicazioni scritte in JavaScript ed eseguite con Node.js, hanno superato quelle che giravano all'interno di Nginx (un server altamente ottimizzato). Ulteriori dettagli a questo indirizzo
  • 12. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Non ci credo. Com'è possibile questa cosa?
  • 13. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Node.js benchmark Si pure io sono rimasto sorpreso quando ho letto queste cose. Vediamo le due ragioni principali per cui questi risultati sono così "eclatanti". In primis abbiamo JavaScript che si sta evolvendo e aggiornando, diventando sempre più importante nel grande mondo del Web. Due visto che questo linguaggio è diventato sempre più utilizzato, ecco che i vari sviluppatori di browser hanno deciso di creare ed inserire all'interno di essi motori in grado di eseguire in modo molto più veloce il codice scritto in JavaScript.
  • 14. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com JavaScript Engine V8?!? Motore Google?!?
  • 15. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Aspetta. Quindi JavaScript Engine V8 è il motore di Google? Yap. Hai capito molto bene. JavaScript Engine V8 è l'engine il motore JavaScript realizzato da Google e inserito all'interno del suo browser Chrome e anche Chromium. Per un buon periodo questo motore è stato il più veloce in circolazione, oltre a quello più stabile. In più JavaScript Engine V8 era ed è ancora Open Source, questo significa che se vuoi accedere a tutto il suo codice sorgente e poi decidi di utilizzarlo all'interno del tuo progetto o meglio applicazione web differente, fuori dal browser, lo puoi fare liberamente.
  • 16. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Quindi Node.js è un motore JavaScript?
  • 17. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Aspetta. Quindi JavaScript Engine V8 è il motore di Google? Si. Una delle parti importanti di Node.js sta nel possedere questo motore JavaScript all'interno del suo cuore. Questa cosa fa si che un'applicazione o programma scritto in JavaScript giri in modo così veloce, anche se questo linguaggio è interpretato.
  • 18. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Come fanno a rendere Node.js così veloce?
  • 19. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Come fanno a rendere Node.js così veloce? (risposta) Se parliamo dei nuovi computer, abbiamo dalla nostra il fattore della velocità e potenza della memoria RAM e la CPU, seguita poi dai dispositivi di storage SSD, che combinati insieme ci danno una grande potenza e velocità di calcolo. Però non sempre questo è valido, perchè esistono ancora computer lenti e dispositivi di storage lenti, così come la stessa rete Internet non è così veloce. Ecco che in questo caso le applicazioni diventano lente. Tutto questo indica allo sviluppatore che per velocizzare l'esecuzione della sua applicazione non deve pensare solo agli algoritmi utilizzati, ma deve tenere molto conto dell'ottimizzazione I/O (input/output)
  • 20. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Mi confondi, si può ottimizzare l'I/O (input/output)? Io pensavo che l'I/O è condizionato dalla velocità dell'hardware, non dal software. Alt... Node.js non cerca di ottimizzare l'input/output del tuo programma, ma ha lo scopo di impedire che esso impedisca al resto dell'applicazione di continuare a lavorare. Ti ho confuso ehee !?! Per farti capire che cosa volevo dire, ti faccio un piccolo esempio. Tu sei in coda alla posta. La signora a un certo punto chiama te e ti chiede che cosa ti serve, tu spieghi a lei che cosa vuoi e lei ti fornisce un modulo da compilare, ti metti davanti a lei e compili il modulo. In questo modo la fila dietro di te aspetta, qualcuno comincerà a spazientirsi e vi manderà a quel paese ad entrambi. Ed ecco che adesso interviene Node.js. Ossia tu fai la tua richiesta, solo che una volta ricevuto il modulo da compilare e la tua bella penna, vieni invitato a compilarlo su un tavolo vicino. In questo modo mentre tu finisci di compilare, la signora può prendere in gestione il restante delle persone in coda. Ed ecco che così non ti manderà nessuno a quel paese.
  • 21. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Un piccolo schema
  • 22. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Intelligente come cosa, ma non è un pò complicato tutto questo lavoro? Ufficialmente si. Tutto questo lavoro di delega e tener traccia di tutti i vari task è molto complicato. Va anche detto che tutti i sistemi operativi integra all'interno del loro cuore il supporto per questo tipo di lavoro, però molto spesso è molto difficile da utilizzare. Quindi ecco che Node.js interviene nel nostro aiuto.
  • 23. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Quindi a cosa serve Node.js? Lo sapevo che mi facevi questa domanda così secca. Anzi la stavo aspettando da un pò. Adesso che hai capito che cos'è Node.js, devi giustamente sapere a che cosa serve. Node.js serve per semplificare la realizzazione di applicazioni di rete, per esempio: programmi di chat, giochi on- line o Server Web; che possono gestire molti utenti alla volta in modo più veloce e diretto di prima. In questo modo tutto l'applicazione, sia nella parte front-end e back-end, può essere scritta interamente con un solo linguaggio, cioè JavaScript.
  • 24. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Node.js >>> FINE Finisce qui la spiegazione... Ecco un piccolo programma scritto proprio utilizzando JavaScript e Node.js Leggi Qui
  • 25. Autore: Flavius Florin Harabor e-mail: ffinformaticus@gmail.com Node.js >>> Cose Utili Bene penso di aver capito che cos'è e a che cosa serve Node.js. Però mi puoi dare qualche link utile o indicarmi alcuni libri che posso acquistare? Certamente, ecco qua alcuni link e alcuni titoli di alcuni libri, clicca sopra e continua ad informarti su questo argomento. Mi auguro di esserti stato utile e ci risentiamo la prossima volta, magari parlando dello stesso argomento in modo molto più tecnico. Link (clicca sul link): ● https://nodejs.org/ ● https://code.google.com/p/v8/ ● http://en.wikipedia.org/wiki/Node.js ● http://www.hostingtalk.it/lezione-1-node-js-introduzione_-c000000ge/ ● http://www.christianpalazzo.org/breve-introduzione-node-js-e-sua-configurazione-con-apache/ ● https://blog.udemy.com/learn-node-js ● http://www.slideshare.net/appdynamics/app-d-anatomymodernnodejsposterinside Libri (clicca sulla voce): Node.js: Creare applicazioni web in JavaScrip (Guida completa) Node.js, MongoDB, and AngularJS Web Development (Developer's Library) Node.js in Action Node.js the Right Way: Practical, Server-Side JavaScript That Scales Learning Node.js: A Hands-On Guide to Building Web Applications in JavaScript Beginning Node.js Node.js Design Patterns Node.js for PHP Developers: Porting PHP to Node.js