SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
node.js - javascript ovunque
Roma, 26 ottobre 2013
LinuxDay Roma 2013

Valerio Coltrè →
←Claudio Mignanti

.
.
Cosa è

node.js è una piattaforma basata su 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
1.
2.

http://nodejs.org/
http://mashable.com/2011/03/10/node-js/

http://goo.gl/4VuKS6
V8, l’interprete

V8 è l'engine javascript originalmente
sviluppato per Chrome.
● Molto veloce, profiling avanzato.
● Completamente opensource.

1.

http://code.google.com/p/v8/

http://goo.gl/4VuKS6
Dove si usa

Ambiti d'uso:
● REST API (JSON)
● NodeCopter
● Coder for Raspberry PI
● Web Developer Tools (Grunt, Bower)
Altri punti a favore:
● community molto aperta e fervente
● performance cpu-bound & data-bound.
● nuove tecnologie (websocket)
http://goo.gl/4VuKS6
javascript

Caratteristiche:
● linguaggio che supporta l'OOP
● interpretato a runtime
● debolmente tipato
Assi nella manica:
● closure
● prototipizzazione
● regex native (senza librerie)
● funzioni anonime native
● simple to learn, hard to master
http://goo.gl/4VuKS6
event loop

Gli interpreti javascript sono single thread
● basato su eventi
○ funzioni in listening sull'evento

● stack di chiamate
● accesso asincrono alle risorse
Specificatamente per nodejs:
● possibilità di accesso sincrono al filesystem
● buffer
● multiprocesso
● ...ed altre nodejs API
http://goo.gl/4VuKS6
npm - node package manager

nodejs è basato su moduli
● AMD-compliant
● ogni modulo é isolato (fn wrap)
Per gestire le (complesse) dipendenze c'è NPM
moduli famosi:
● express Sinatra inspired web development framework
● async Higher-order functions and common patterns for async. code
● grunt The JavaScript Task Runner
● phone-gap allows you to create mobile apps using standardized web APIs
http://goo.gl/4VuKS6
package.json

Gestisce le dipendenze con altri moduli nodejs
●
●
●
●

Scaffold veloce con npm init
non re-inventare la ruota
moduli utili anche < 100 righe
one line install

http://package.json.nodejitsu.com/
http://goo.gl/4VuKS6
package.json

http://goo.gl/4VuKS6
Esempio pratico - tail -f

Cosa si puo’ fare con nodejs:

tail.js → chunked.js
● comportamento analogo a tail -f
● versione web
● chunked response (HTTP 1.1)

http://goo.gl/6Ozcc9
http://goo.gl/4VuKS6
Esempio pratico - tail -f

http://nodejs.org/api/
API di nodejs utilizzate:
● http - web server
● fs - lettura filesystem
● stream in lettura/scrittura

http://goo.gl/6Ozcc9
http://goo.gl/4VuKS6
conclusioni

?
← https://github.com/claudyus
https://github.com/mrgamer →
https://github.com/TopCS

http://goo.gl/4VuKS6 →

Weitere ähnliche Inhalte

Was ist angesagt?

Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016Codemotion
 
StarterTheme Prestashop 1.7
StarterTheme Prestashop 1.7StarterTheme Prestashop 1.7
StarterTheme Prestashop 1.7Bwlab
 

Was ist angesagt? (7)

Portofino per Jug Padova
Portofino per Jug PadovaPortofino per Jug Padova
Portofino per Jug Padova
 
Progetto Linux va a scuola
Progetto Linux va a scuolaProgetto Linux va a scuola
Progetto Linux va a scuola
 
Mageday::2014
Mageday::2014Mageday::2014
Mageday::2014
 
All you can store
All you can storeAll you can store
All you can store
 
Clustering Magento
Clustering MagentoClustering Magento
Clustering Magento
 
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
 
StarterTheme Prestashop 1.7
StarterTheme Prestashop 1.7StarterTheme Prestashop 1.7
StarterTheme Prestashop 1.7
 

Andere mochten auch

V. liqviat 2009
V. liqviat 2009V. liqviat 2009
V. liqviat 2009nera24mx
 
Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?Giancarlo Valente
 
Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascriptCorso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascriptStudiabo
 
Apache Cordova: Overview and Introduction
Apache Cordova: Overview and IntroductionApache Cordova: Overview and Introduction
Apache Cordova: Overview and IntroductionGabriele Falasca
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccLuciano Colosio
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e PostgresqlLucio Grenzi
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptSinergia Totale
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoGabriele Gaggi
 
Introduzione a JavaScript
Introduzione a JavaScriptIntroduzione a JavaScript
Introduzione a JavaScriptGiovanni Buffa
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Eugenio Minardi
 
Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayWeb base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayStudiabo
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Flavius-Florin Harabor
 
Doing research
Doing researchDoing research
Doing researchhuanghxin
 

Andere mochten auch (20)

V. liqviat 2009
V. liqviat 2009V. liqviat 2009
V. liqviat 2009
 
Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?
 
Aulas linux
Aulas linuxAulas linux
Aulas linux
 
Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascriptCorso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascript
 
Apache Cordova: Overview and Introduction
Apache Cordova: Overview and IntroductionApache Cordova: Overview and Introduction
Apache Cordova: Overview and Introduction
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici ecc
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e Postgresql
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScript
 
Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Introduzione a JavaScript
Introduzione a JavaScriptIntroduzione a JavaScript
Introduzione a JavaScript
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
 
Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayWeb base-03-js-numeri stringearray
Web base-03-js-numeri stringearray
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
 
Informe bingo bazar 2012
Informe bingo bazar 2012Informe bingo bazar 2012
Informe bingo bazar 2012
 
Presentation 2
Presentation  2Presentation  2
Presentation 2
 
Unit plan biologi pbl smktbb 2012
Unit plan biologi pbl smktbb 2012Unit plan biologi pbl smktbb 2012
Unit plan biologi pbl smktbb 2012
 
18 cumple jessy
18 cumple jessy18 cumple jessy
18 cumple jessy
 
Doing research
Doing researchDoing research
Doing research
 
Unit plan biologi pbl smktbb
Unit plan biologi pbl smktbbUnit plan biologi pbl smktbb
Unit plan biologi pbl smktbb
 

Ähnlich wie Roma linuxday 2013 - nodejs

Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side JavascriptMatteo Napolitano
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss CloudJBug Italy
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009Sanne Grinovero
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzajekil
 
phpday 2006 - SEA case study
phpday 2006 - SEA case studyphpday 2006 - SEA case study
phpday 2006 - SEA case studyGaetano Giunta
 
Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di riaLorenzo Bortolotto
 
Open Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioni
Open Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioniOpen Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioni
Open Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioniVendini-Italy
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 
Framework software e Zend Framework
Framework software e Zend FrameworkFramework software e Zend Framework
Framework software e Zend FrameworkEnrico Zimuel
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]santi caltabiano
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernosparkfabrik
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld DevicesGWTcon
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
 
Node js dev day napoli 2016
Node js dev day napoli 2016Node js dev day napoli 2016
Node js dev day napoli 2016Michele Nasti
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 

Ähnlich wie Roma linuxday 2013 - nodejs (20)

Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side Javascript
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss Cloud
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009
 
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
 
phpday 2006 - SEA case study
phpday 2006 - SEA case studyphpday 2006 - SEA case study
phpday 2006 - SEA case study
 
Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di ria
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
 
Open Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioni
Open Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioniOpen Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioni
Open Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioni
 
Zend Framework 2
Zend Framework 2Zend Framework 2
Zend Framework 2
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
Framework software e Zend Framework
Framework software e Zend FrameworkFramework software e Zend Framework
Framework software e Zend Framework
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)
 
Node js dev day napoli 2016
Node js dev day napoli 2016Node js dev day napoli 2016
Node js dev day napoli 2016
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Spring e Flex
Spring e FlexSpring e Flex
Spring e Flex
 

Mehr von Claudio Mignanti

Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and KubernetesPycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and KubernetesClaudio Mignanti
 
Elettronica digitale with Example
Elettronica digitale with ExampleElettronica digitale with Example
Elettronica digitale with ExampleClaudio Mignanti
 
Picobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertisingPicobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertisingClaudio Mignanti
 
Openwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 RomaOpenwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 RomaClaudio Mignanti
 
Presentazione Ninux al LinuxDay Roma 2012
Presentazione Ninux al LinuxDay Roma 2012Presentazione Ninux al LinuxDay Roma 2012
Presentazione Ninux al LinuxDay Roma 2012Claudio Mignanti
 

Mehr von Claudio Mignanti (9)

Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and KubernetesPycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
 
Grunt.js introduction
Grunt.js introductionGrunt.js introduction
Grunt.js introduction
 
Presentazione tirocinio
Presentazione tirocinio Presentazione tirocinio
Presentazione tirocinio
 
TuxIsAlive
TuxIsAliveTuxIsAlive
TuxIsAlive
 
Elettronica digitale with Example
Elettronica digitale with ExampleElettronica digitale with Example
Elettronica digitale with Example
 
Git for dummies
Git for dummiesGit for dummies
Git for dummies
 
Picobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertisingPicobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertising
 
Openwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 RomaOpenwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 Roma
 
Presentazione Ninux al LinuxDay Roma 2012
Presentazione Ninux al LinuxDay Roma 2012Presentazione Ninux al LinuxDay Roma 2012
Presentazione Ninux al LinuxDay Roma 2012
 

Roma linuxday 2013 - nodejs

  • 1. node.js - javascript ovunque Roma, 26 ottobre 2013 LinuxDay Roma 2013 Valerio Coltrè → ←Claudio Mignanti . .
  • 2. Cosa è node.js è una piattaforma basata su 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 1. 2. http://nodejs.org/ http://mashable.com/2011/03/10/node-js/ http://goo.gl/4VuKS6
  • 3. V8, l’interprete V8 è l'engine javascript originalmente sviluppato per Chrome. ● Molto veloce, profiling avanzato. ● Completamente opensource. 1. http://code.google.com/p/v8/ http://goo.gl/4VuKS6
  • 4. Dove si usa Ambiti d'uso: ● REST API (JSON) ● NodeCopter ● Coder for Raspberry PI ● Web Developer Tools (Grunt, Bower) Altri punti a favore: ● community molto aperta e fervente ● performance cpu-bound & data-bound. ● nuove tecnologie (websocket) http://goo.gl/4VuKS6
  • 5. javascript Caratteristiche: ● linguaggio che supporta l'OOP ● interpretato a runtime ● debolmente tipato Assi nella manica: ● closure ● prototipizzazione ● regex native (senza librerie) ● funzioni anonime native ● simple to learn, hard to master http://goo.gl/4VuKS6
  • 6. event loop Gli interpreti javascript sono single thread ● basato su eventi ○ funzioni in listening sull'evento ● stack di chiamate ● accesso asincrono alle risorse Specificatamente per nodejs: ● possibilità di accesso sincrono al filesystem ● buffer ● multiprocesso ● ...ed altre nodejs API http://goo.gl/4VuKS6
  • 7. npm - node package manager nodejs è basato su moduli ● AMD-compliant ● ogni modulo é isolato (fn wrap) Per gestire le (complesse) dipendenze c'è NPM moduli famosi: ● express Sinatra inspired web development framework ● async Higher-order functions and common patterns for async. code ● grunt The JavaScript Task Runner ● phone-gap allows you to create mobile apps using standardized web APIs http://goo.gl/4VuKS6
  • 8. package.json Gestisce le dipendenze con altri moduli nodejs ● ● ● ● Scaffold veloce con npm init non re-inventare la ruota moduli utili anche < 100 righe one line install http://package.json.nodejitsu.com/ http://goo.gl/4VuKS6
  • 10. Esempio pratico - tail -f Cosa si puo’ fare con nodejs: tail.js → chunked.js ● comportamento analogo a tail -f ● versione web ● chunked response (HTTP 1.1) http://goo.gl/6Ozcc9 http://goo.gl/4VuKS6
  • 11. Esempio pratico - tail -f http://nodejs.org/api/ API di nodejs utilizzate: ● http - web server ● fs - lettura filesystem ● stream in lettura/scrittura http://goo.gl/6Ozcc9 http://goo.gl/4VuKS6