Node.js et les nouvelles technologies javascript

3,667 views

Published on

Présentation sur Node.js et les nouvelles technologies javascript, qui a eu lieu dans les locaux de Smile, à Levallois (92).

Retour d'exploration par un développeur Drupal (moi) sur ces technologies, et comparaison avec Drupal.

  • Be the first to comment

Node.js et les nouvelles technologies javascript

  1. 1. Node.js et les nouvellestechnologies javascript Lundi 26 septembre 2011, @Smile
  2. 2. Qui je suis-je ?• Khalid Jebbari• DjebbZ sur drupal.org• @Dj3bbZ (DjebbZ était pris...)• Développeur Drupal depuis 2009, en Freelance depuis 2010
  3. 3. DISCLAIMERVous risquez d’arrêter Drupal
  4. 4. Node.js ?• ≠ node Drupal• Serveur d’interprétation javascript• Utilise V8• Evènementiel• Non bloquant et asynchrone
  5. 5. Evènementiel, nonbloquant & asynchrone• Dans Node.js, tout s’exécute en parallèle, sauf votre code• ???• Les E/S sont asynchrones
  6. 6. // module du coeur de Nodevar http = require(http);server = http.createServer();// event listenerserver.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/);
  7. 7. Modules Node.js• Core : fs, http, ... 25+ /lib• 2000+ avec NPM (~10/jour !)• NPM : Drush pour Node.js• Express, Socket.io, Jade, Stylus, ...• CoffeeScript
  8. 8. + ?
  9. 9. 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”
  10. 10. OU ?
  11. 11. 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 !)
  12. 12. Node est-il trop jeune pour la production ?• Twitter• Facebook• eBay• les threads de mySpace• Development Seed• Et bien d’autres...
  13. 13. 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
  14. 14. Frameworks Javascript côté client• JavaScriptMVC,YUILibrary• Objective-J, Cappuccino, SproutCore• Sammy.js, AngularJS, KnockoutJS, Spine.js• Backbone.js
  15. 15. • MVC (ou dérivé MV*/MVVM ...)• Très léger : 5Kb minified & gzipped• Basé sur Underscore.js• Compatible jQuery/Zepto.js
  16. 16. Démo Backbone ?
  17. 17. • Base de données No-SQL• Orienté documents• Stockage au format JSON• Interaction par HTTP (RESTful API)
  18. 18. Architecture web classique (3-tier) Client HTML, CSS, Javascript Apache, PHP, DrupalServeur d’application Node.js MySQL Base de données MongoDB/CouchDB
  19. 19. Architecture web CouchApp (2-tier) Client HTML, CSS, Javascript Apache, PHP, DrupalServeur d’application Node.js Base de données CouchDB via HTTP
  20. 20. 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à ...
  21. 21. 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
  22. 22. Crédit : hellojenuine @ Flickr, http://www.flickr.com/photos/jenosaur/5461377850/ Questions ?

×