Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Roma linuxday 2013 - nodejs

590 views

Published on

Presentazione al linux Day di Roma della piattaforma node.js, npm e connessioni con progetti come Grunt, Express e Phone-Gap

Published in: Technology
  • Be the first to comment

Roma linuxday 2013 - nodejs

  1. 1. node.js - javascript ovunque Roma, 26 ottobre 2013 LinuxDay Roma 2013 Valerio Coltrè → ←Claudio Mignanti . .
  2. 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. 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. 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. 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. 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. 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. 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
  9. 9. package.json http://goo.gl/4VuKS6
  10. 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. 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
  12. 12. conclusioni ? ← https://github.com/claudyus https://github.com/mrgamer → https://github.com/TopCS http://goo.gl/4VuKS6 →

×