SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Node.js et les nouvelles
technologies javascript
    Lundi 26 septembre 2011, @Smile
Qui je suis-je ?

• Khalid Jebbari
• DjebbZ sur drupal.org
• @Dj3bbZ (DjebbZ était pris...)
• Développeur Drupal depuis 2009, en
  Freelance depuis 2010
DISCLAIMER
Vous risquez d’arrêter
        Drupal
Node.js ?

• ≠ node Drupal
• Serveur d’interprétation javascript
• Utilise V8
• Evènementiel
• Non bloquant et asynchrone
Evènementiel, non
bloquant & asynchrone

• Dans Node.js, tout s’exécute en parallèle,
  sauf votre code
• ???
• Les E/S sont asynchrones
// module du coeur de Node
var http = require('http');
server = http.createServer();

// event listener
server.on(‘request’, function (request, response) {
  // event callback
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello Worldn');
});

server.listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
Modules Node.js

• Core : fs, http, ... 25+ /lib
• 2000+ avec NPM (~10/jour !)
• NPM : Drush pour Node.js
• Express, Socket.io, Jade, Stylus, ...
• CoffeeScript
+   ?
Le module Drupal
        “Node.js”
• http://drupal.org/project/nodejs
• Channels de communication (PubSub)
• Signal envoyé à un channel
• Utilisateurs (uid) inscrits au channel
  reçoivent message
• Parfait pour un chat ! Ou autre
  fonctionnalité “temps réel”
OU
     ?
Bon et moins bon
    (pour un Drupalien)
✤   Rapide !
                               -   Javascript (≠ PHP !)
✤   Contrôle total de son
    appli                      -   Évènementiel et
                                   asynchrone (un coup à
✤   Appli web dynamique,           prendre)
    API RESTful
                               -   Moins rapide de
✤   Un seul langage pour le        déployer une appli Node
    client et le serveur (on       de type “CMS”
    peut partager du code !)
Node est-il trop jeune
 pour la production ?
• Twitter
• Facebook
• eBay
• les threads de mySpace
• Development Seed
• Et bien d’autres...
La révolution Javascript
     dans le client
• Les navigateurs et les machines sont
  rapides
• Avec le mobile, on ne peut plus considérer
  les connexions comme fiables
• JSON est un excellent et léger moyen de
  communication entre applications
  • => Déporter la logique métier
    dans le browser
Frameworks Javascript
     côté client
• JavaScriptMVC,YUILibrary
• Objective-J, Cappuccino, SproutCore
• Sammy.js, AngularJS, KnockoutJS, Spine.js
• Backbone.js
• MVC (ou dérivé MV*/MVVM ...)
• Très léger : 5Kb minified & gzipped
• Basé sur Underscore.js
• Compatible jQuery/Zepto.js
Démo Backbone ?
• Base de données No-SQL
• Orienté documents
• Stockage au format JSON
• Interaction par HTTP
  (RESTful API)
Architecture web
    classique (3-tier)
       Client           HTML, CSS, Javascript


                        Apache, PHP, Drupal
Serveur d’application
                        Node.js

                        MySQL
  Base de données
                        MongoDB/CouchDB
Architecture web
   CouchApp (2-tier)
       Client           HTML, CSS, Javascript


                        Apache, PHP, Drupal
Serveur d’application
                        Node.js


  Base de données       CouchDB via HTTP
Drupal 8
        Initiative WSCCI
•   WSCCI = Web Services and Context in Core Initiative
•   Menée par Larry Garfield, @Crell
•   “Transformer Drupal en Serveur REST sur lequel est
    bâti un CMS”
•   Drupal pourra servir autre chose que du HTML
    (notamment du JSON !)
•   Extrêmement important pour la survie de Drupal
•   Drupal 8 sort en 2013-14, et d’ici là ...
Sources, biblio etc.
•   http://nodejs.org

•   http://www.slideshare.net/sh1mmer/a-language-for-the-internet-why-
    javascript-and-nodejs-is-right-for-internet-application

•   http://www.web-tambouille.fr/2011/02/15/node-js-partie-1-tout-ce-que-vous-
    devez-savoir-sur-node-js.html

•   http://london2011.drupal.org/conference/sessions/nodejs-and-drupal

•   https://github.com/joyent/node/wiki/modules

•   http://blog.nodejitsu.com/

•   Photos : http://memegenerator.net
Crédit : hellojenuine @ Flickr, http://www.flickr.com/photos/jenosaur/5461377850/


                          Questions ?

Contenu connexe

Tendances

Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
Horacio Gonzalez
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
Habib MAALEM
 
Node.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sitesNode.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sites
Microsoft
 

Tendances (20)

Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
Livre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JSLivre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JS
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
 
NodeJs in real life
NodeJs in real lifeNodeJs in real life
NodeJs in real life
 
WebHookIt @parisjs #4
WebHookIt @parisjs #4WebHookIt @parisjs #4
WebHookIt @parisjs #4
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)
 
WebSocket avec Java EE 7
WebSocket avec Java EE 7WebSocket avec Java EE 7
WebSocket avec Java EE 7
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
 
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
Real-Time applications avec la spécification Java (JSR 356) et le protocole W...
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
Debian usage at BlaBlaCar - Debian Paris meetup
Debian usage at BlaBlaCar - Debian Paris meetupDebian usage at BlaBlaCar - Debian Paris meetup
Debian usage at BlaBlaCar - Debian Paris meetup
 
Node.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sitesNode.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sites
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logicielle
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006
 
BlaBlaCar - Going Native !
BlaBlaCar - Going Native ! BlaBlaCar - Going Native !
BlaBlaCar - Going Native !
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Les Promises en Javascript
Les Promises en JavascriptLes Promises en Javascript
Les Promises en Javascript
 

En vedette

Multi-tiered Node Architectures - JSConf 2011
Multi-tiered Node Architectures - JSConf 2011Multi-tiered Node Architectures - JSConf 2011
Multi-tiered Node Architectures - JSConf 2011
Tom Croucher
 
Recursos situación 2
Recursos situación  2Recursos situación  2
Recursos situación 2
MEP
 
La To Do Green de la semaine - 5 au 11 novembre 2012
La To Do Green de la semaine - 5 au 11 novembre 2012La To Do Green de la semaine - 5 au 11 novembre 2012
La To Do Green de la semaine - 5 au 11 novembre 2012
My Green ID
 

En vedette (20)

Node.js Module Resolution by visual example
Node.js Module Resolution by visual exampleNode.js Module Resolution by visual example
Node.js Module Resolution by visual example
 
A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...
 
Multi-tiered Node Architectures - JSConf 2011
Multi-tiered Node Architectures - JSConf 2011Multi-tiered Node Architectures - JSConf 2011
Multi-tiered Node Architectures - JSConf 2011
 
Cours uml
Cours umlCours uml
Cours uml
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScript
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
In01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancéesIn01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancées
 
AngularJS - Présentation (french)
AngularJS - Présentation (french)AngularJS - Présentation (french)
AngularJS - Présentation (french)
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Retour d'experience projet AngularJS
Retour d'experience projet AngularJSRetour d'experience projet AngularJS
Retour d'experience projet AngularJS
 
Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3
 
AngularJS
AngularJSAngularJS
AngularJS
 
Recursos situación 2
Recursos situación  2Recursos situación  2
Recursos situación 2
 
Experiencias constructivistas 2003
Experiencias constructivistas 2003Experiencias constructivistas 2003
Experiencias constructivistas 2003
 
La To Do Green de la semaine - 5 au 11 novembre 2012
La To Do Green de la semaine - 5 au 11 novembre 2012La To Do Green de la semaine - 5 au 11 novembre 2012
La To Do Green de la semaine - 5 au 11 novembre 2012
 
Marketing 1
Marketing 1Marketing 1
Marketing 1
 
Mariel 28 de marzo 1980
Mariel 28 de marzo 1980Mariel 28 de marzo 1980
Mariel 28 de marzo 1980
 
Twitterfox guia d'ús - TwitterFox User Guide
Twitterfox guia d'ús - TwitterFox User GuideTwitterfox guia d'ús - TwitterFox User Guide
Twitterfox guia d'ús - TwitterFox User Guide
 

Similaire à Node.js et les nouvelles technologies javascript

Html5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGHtml5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUG
JUG Toulouse
 
USI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIUSI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SI
Djamel Zouaoui
 

Similaire à Node.js et les nouvelles technologies javascript (20)

JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA 03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
Aspectize meetup
Aspectize meetupAspectize meetup
Aspectize meetup
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lr
 
HTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilitéHTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilité
 
Nouveaux apis
Nouveaux apisNouveaux apis
Nouveaux apis
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
 
Native script
Native scriptNative script
Native script
 
Html5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGHtml5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUG
 
De l'open source à l'open API avec Restlet
De l'open source à l'open API avec RestletDe l'open source à l'open API avec Restlet
De l'open source à l'open API avec Restlet
 
USI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIUSI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SI
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & tools
 
Webinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft IntelWebinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft Intel
 

Node.js et les nouvelles technologies javascript

  • 1. Node.js et les nouvelles technologies javascript Lundi 26 septembre 2011, @Smile
  • 2. Qui je suis-je ? • Khalid Jebbari • DjebbZ sur drupal.org • @Dj3bbZ (DjebbZ était pris...) • Développeur Drupal depuis 2009, en Freelance depuis 2010
  • 4. Node.js ? • ≠ node Drupal • Serveur d’interprétation javascript • Utilise V8 • Evènementiel • Non bloquant et asynchrone
  • 5.
  • 6. Evènementiel, non bloquant & asynchrone • Dans Node.js, tout s’exécute en parallèle, sauf votre code • ??? • Les E/S sont asynchrones
  • 7. // module du coeur de Node var http = require('http'); server = http.createServer(); // event listener server.on(‘request’, function (request, response) { // event callback response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello Worldn'); }); server.listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/');
  • 8. Modules Node.js • Core : fs, http, ... 25+ /lib • 2000+ avec NPM (~10/jour !) • NPM : Drush pour Node.js • Express, Socket.io, Jade, Stylus, ... • CoffeeScript
  • 9. + ?
  • 10. Le module Drupal “Node.js” • http://drupal.org/project/nodejs • Channels de communication (PubSub) • Signal envoyé à un channel • Utilisateurs (uid) inscrits au channel reçoivent message • Parfait pour un chat ! Ou autre fonctionnalité “temps réel”
  • 11. OU ?
  • 12.
  • 13. Bon et moins bon (pour un Drupalien) ✤ Rapide ! - Javascript (≠ PHP !) ✤ Contrôle total de son appli - Évènementiel et asynchrone (un coup à ✤ Appli web dynamique, prendre) API RESTful - Moins rapide de ✤ Un seul langage pour le déployer une appli Node client et le serveur (on de type “CMS” peut partager du code !)
  • 14. Node est-il trop jeune pour la production ? • Twitter • Facebook • eBay • les threads de mySpace • Development Seed • Et bien d’autres...
  • 15. La révolution Javascript dans le client • Les navigateurs et les machines sont rapides • Avec le mobile, on ne peut plus considérer les connexions comme fiables • JSON est un excellent et léger moyen de communication entre applications • => Déporter la logique métier dans le browser
  • 16. Frameworks Javascript côté client • JavaScriptMVC,YUILibrary • Objective-J, Cappuccino, SproutCore • Sammy.js, AngularJS, KnockoutJS, Spine.js • Backbone.js
  • 17. • MVC (ou dérivé MV*/MVVM ...) • Très léger : 5Kb minified & gzipped • Basé sur Underscore.js • Compatible jQuery/Zepto.js
  • 19. • Base de données No-SQL • Orienté documents • Stockage au format JSON • Interaction par HTTP (RESTful API)
  • 20. Architecture web classique (3-tier) Client HTML, CSS, Javascript Apache, PHP, Drupal Serveur d’application Node.js MySQL Base de données MongoDB/CouchDB
  • 21. Architecture web CouchApp (2-tier) Client HTML, CSS, Javascript Apache, PHP, Drupal Serveur d’application Node.js Base de données CouchDB via HTTP
  • 22. Drupal 8 Initiative WSCCI • WSCCI = Web Services and Context in Core Initiative • Menée par Larry Garfield, @Crell • “Transformer Drupal en Serveur REST sur lequel est bâti un CMS” • Drupal pourra servir autre chose que du HTML (notamment du JSON !) • Extrêmement important pour la survie de Drupal • Drupal 8 sort en 2013-14, et d’ici là ...
  • 23. Sources, biblio etc. • http://nodejs.org • http://www.slideshare.net/sh1mmer/a-language-for-the-internet-why- javascript-and-nodejs-is-right-for-internet-application • http://www.web-tambouille.fr/2011/02/15/node-js-partie-1-tout-ce-que-vous- devez-savoir-sur-node-js.html • http://london2011.drupal.org/conference/sessions/nodejs-and-drupal • https://github.com/joyent/node/wiki/modules • http://blog.nodejitsu.com/ • Photos : http://memegenerator.net
  • 24. Crédit : hellojenuine @ Flickr, http://www.flickr.com/photos/jenosaur/5461377850/ Questions ?