SlideShare a Scribd company logo
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 →

More Related Content

PDF
node.js everywhere
PPTX
Introduzione a Node.js
PDF
Webkit presentazione ufficiale
PDF
I linguaggi di programmazione e il mondo open-source
PDF
Case study OmniAuto.it
ODP
WUI con Google Polymer
PDF
Progetto Linux va a scuola - Descrizione tecnica
PPTX
Da JavaScript a TypeScript
node.js everywhere
Introduzione a Node.js
Webkit presentazione ufficiale
I linguaggi di programmazione e il mondo open-source
Case study OmniAuto.it
WUI con Google Polymer
Progetto Linux va a scuola - Descrizione tecnica
Da JavaScript a TypeScript

What's hot (7)

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

Viewers also liked (20)

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

Similar to Roma linuxday 2013 - nodejs (20)

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

More from Claudio Mignanti (9)

PDF
Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
PDF
Grunt.js introduction
PDF
Presentazione tirocinio
PDF
TuxIsAlive
PDF
Elettronica digitale with Example
PDF
Git for dummies
PDF
Picobgp - A simple deamon for routing advertising
PDF
Openwrt, linux e GPIO al LinuxDay 2010 Roma
PDF
Presentazione Ninux al LinuxDay Roma 2012
Pycon9 - Paas per tutti i gusti con Dokku and Kubernetes
Grunt.js introduction
Presentazione tirocinio
TuxIsAlive
Elettronica digitale with Example
Git for dummies
Picobgp - A simple deamon for routing advertising
Openwrt, linux e GPIO al LinuxDay 2010 Roma
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