Node.js et les nouvelles technologies javascript

Post on 21-Jun-2015

2.407 views 2 download

description

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.

Transcript of Node.js et les nouvelles technologies javascript

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

DISCLAIMERVous 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 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 World\n');});

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 !

✤ Contrôle total de son appli

✤ Appli web dynamique, API RESTful

✤ Un seul langage pour le client et le serveur (on peut partager du code !)

- Javascript (≠ PHP !)

- Évènementiel et asynchrone (un coup à prendre)

- Moins rapide de déployer une appli Node de type “CMS”

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

• 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

Serveur d’application

Base de données

HTML, CSS, Javascript

Apache, PHP, DrupalNode.js

MySQLMongoDB/CouchDB

Architecture web CouchApp (2-tier)

Serveur d’application

Client

Base de données

HTML, CSS, Javascript

Apache, PHP, DrupalNode.js

CouchDB via HTTP

Drupal 8Initiative 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 ?