node.js et les nouvelles technologies javascript

24
Node.js et les nouvelles technologies javascript Lundi 26 septembre 2011, @Smile

Upload: khalid-jebbari

Post on 21-Jun-2015

2.407 views

Category:

Documents


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

Page 1: Node.js et les nouvelles technologies javascript

Node.js et les nouvelles technologies javascript

Lundi 26 septembre 2011, @Smile

Page 2: Node.js et les nouvelles technologies javascript

Qui je suis-je ?

• Khalid Jebbari

• DjebbZ sur drupal.org

• @Dj3bbZ (DjebbZ était pris...)

• Développeur Drupal depuis 2009, en Freelance depuis 2010

Page 3: Node.js et les nouvelles technologies javascript

DISCLAIMERVous risquez d’arrêter

Drupal

Page 4: Node.js et les nouvelles technologies javascript

Node.js ?

• ≠ node Drupal

• Serveur d’interprétation javascript

• Utilise V8

• Evènementiel

• Non bloquant et asynchrone

Page 5: Node.js et les nouvelles technologies javascript
Page 6: Node.js et les nouvelles technologies javascript

Evènementiel, non bloquant & asynchrone

• Dans Node.js, tout s’exécute en parallèle, sauf votre code

• ???

• Les E/S sont asynchrones

Page 7: Node.js et les nouvelles technologies javascript

// 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/');

Page 8: Node.js et les nouvelles technologies javascript

Modules Node.js

• Core : fs, http, ... 25+ /lib

• 2000+ avec NPM (~10/jour !)

• NPM : Drush pour Node.js

• Express, Socket.io, Jade, Stylus, ...

• CoffeeScript

Page 9: Node.js et les nouvelles technologies javascript

+ ?

Page 10: Node.js et les nouvelles technologies javascript

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”

Page 11: Node.js et les nouvelles technologies javascript

OU ?

Page 12: Node.js et les nouvelles technologies javascript
Page 13: Node.js et les nouvelles technologies javascript

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”

Page 14: Node.js et les nouvelles technologies javascript

Node est-il trop jeune pour la production ?• Twitter

• Facebook

• eBay

• les threads de mySpace

• Development Seed

• Et bien d’autres...

Page 15: Node.js et les nouvelles technologies javascript

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

Page 17: Node.js et les nouvelles technologies javascript

• MVC (ou dérivé MV*/MVVM ...)

• Très léger : 5Kb minified & gzipped

• Basé sur Underscore.js

• Compatible jQuery/Zepto.js

Page 18: Node.js et les nouvelles technologies javascript

Démo Backbone ?

Page 19: Node.js et les nouvelles technologies javascript

• Base de données No-SQL

• Orienté documents

• Stockage au format JSON

• Interaction par HTTP(RESTful API)

Page 20: Node.js et les nouvelles technologies javascript

Architecture web classique (3-tier)

Client

Serveur d’application

Base de données

HTML, CSS, Javascript

Apache, PHP, DrupalNode.js

MySQLMongoDB/CouchDB

Page 21: Node.js et les nouvelles technologies javascript

Architecture web CouchApp (2-tier)

Serveur d’application

Client

Base de données

HTML, CSS, Javascript

Apache, PHP, DrupalNode.js

CouchDB via HTTP

Page 22: Node.js et les nouvelles technologies javascript

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à ...

Page 23: Node.js et les nouvelles technologies javascript

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

Page 24: Node.js et les nouvelles technologies javascript

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

Questions ?