node.js et les nouvelles technologies javascript

Post on 21-Jun-2015

2.407 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

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 ?

top related