nodejs, une introduction

52
[email protected] une introduction... ApéroTech Oxalide, 24 juin 2013 (version légèrement modifiée, avec plus de texte, pour l’adapter à la mise en ligne)

Upload: toxicode

Post on 27-May-2015

2.208 views

Category:

Technology


2 download

DESCRIPTION

Présentation donnée à l'Aperotech Oxalide, le 24 juin 2013. Qu'est-ce que NodeJS ? pourquoi en parle-t-on autant ? quand l'utiliser ? qu'est-ce que l'asynchrone ? quelle est le contexte actuel du marché du js / NodeJS ?

TRANSCRIPT

Page 1: NodeJs, une introduction

[email protected]

une introduction...

ApéroTech Oxalide, 24 juin 2013

(version légèrement modifiée, avec plus de texte, pour l’adapter à la mise en ligne)

Page 2: NodeJs, une introduction

Qu’est-ce que c’est ?

Page 3: NodeJs, une introduction

JavaScript

JavaScript, un langage qui a été connu dans les années 90 pour servir à faire des animations comme :

Page 4: NodeJs, une introduction

Welcome to my homepage !!!

I love kittens !!!!

They are so cute !

I love kittens !!!!I love kittens !!!!photo : www.christianholmer.com

Page 5: NodeJs, une introduction

JavaScript, ça ressemble à :

Page 6: NodeJs, une introduction

JavaScript

Hors du navigateur

accès aux fichiers, au reste de la machine

=> on pourrait par exemple faire un logiciel de conversion d’image, logiciel de backup...

Page 7: NodeJs, une introduction

JavaScript

Avec des fonctions pour

serveurs

Hors du navigateur

JS JS

JS

Page 8: NodeJs, une introduction

Pourquoi en parle-t-on ?

Page 9: NodeJs, une introduction

JavaScript

Avec des fonctions pour

serveursUtilise V8

Hors du navigateur

Page 10: NodeJs, une introduction

JavaScript

Avec des fonctions pour

serveursÉvénementiel

Utilise V8

Hors du navigateur

Page 11: NodeJs, une introduction

Événementiel

Page 12: NodeJs, une introduction

Asynchrone

JavaScript

Avec des fonctions pour

serveursÉvénementiel

Utilise V8

Hors du navigateur

Page 13: NodeJs, une introduction

Synchrone

Appel HTTP

Page 14: NodeJs, une introduction

Asynchrone : Illustration

imaginons un serveur webqui lorsque vous l’interrogez,

va demander à son tour à Twitterles derniers tweets de tel utilisateur

Voyons ce qui se passe sur un serveur «normal», synchrone

Page 15: NodeJs, une introduction

Synchrone

Appel HTTP

Serveur bloqué pendant ce temps

Page 16: NodeJs, une introduction

Synchrone

Autre appel HTTP

Mis en attente...

Page 17: NodeJs, une introduction

Asynchrone

le serveur n’est pas bloqué pendant l’appel à Twitter

Page 18: NodeJs, une introduction

Synchrone

Asynchrone

Page 19: NodeJs, une introduction

Synchrone

Asynchrone

Page 20: NodeJs, une introduction

Un exemple très simple

Page 21: NodeJs, une introduction

Exemple

Page 22: NodeJs, une introduction

L’écosystèmeEst-ce mûr ?

Page 23: NodeJs, une introduction

L’écosystème nodeJS

• nodeJS autosuffisant en serveur web(vs php => Apache)

• des modules NPMexpress, jade, socket.io, mocha

• la communauté, très dynamique mais avec un aspect expérimental fort

Page 24: NodeJs, une introduction

Asynchrone

Avec des fonctions pour

serveursÉvénementiel

Utilise V8

Hors du navigateur

JavaScript

Page 25: NodeJs, une introduction

Asynchrone

Avec des fonctions pour

serveursÉvénementiel

Utilise V8

Hors du navigateur

JavaScript

Le quotidien du développeur nodeJS, c’est avant tout du :

Page 26: NodeJs, une introduction

Remise en contexte :l’histoire de JavaScript

Page 27: NodeJs, une introduction

JavaScript

N’est pas un mini

1995

Un nom de langage assez mal choisi, qui l’a desservi

Page 28: NodeJs, une introduction

JavaScript

vs

1996

La guerre des navigateurs porte un coup fatal au JS

Page 29: NodeJs, une introduction

JavaScript1999-2000

Macromedia / Adobe Flash

Remplace JavaScript comme moyen phare pour rendre les pages web dynamiques

Page 30: NodeJs, une introduction

JavaScript2004-2007

Asynchronous JavaScript And XML

Relance un intérêt pour JavaScript

Page 31: NodeJs, une introduction

JavaScript2007-2008

Surcouche gérant la compatibilité : permet d’amoindrir les désastres causés

par guerre des navigateurs.

Page 32: NodeJs, une introduction

JavaScript2008-2010

V8

Le JavaScript devient rapide,enclenchant une compétition entre navigateurs

Page 33: NodeJs, une introduction

JavaScript2010-2012

HTML 5 révolutionne le web,le grand pilote central, c’est JavaScript

Apple en refusant Flash, en accélère l’adoption

sur mobile

Page 34: NodeJs, une introduction

JavaScript2010-...

Backbone

Page 35: NodeJs, une introduction

Quand l’utiliser ?

Page 36: NodeJs, une introduction

Asynchrone

JavaScript

Avec des fonctions pour

serveursÉvénementiel

Utilise V8

Hors du navigateur

La réponse découle des caractéristiques déjà évoquées :

... mais aussi de l’histoire de JavaScript

Page 37: NodeJs, une introduction

JavaScript

Quand l’utiliser ?

lorsqu’on aime JavaScript...

Page 38: NodeJs, une introduction

Quand l’utiliser ?

JS JS

Lorsqu’il est intéressant d’avoir le même langage côté serveur & client

Page 39: NodeJs, une introduction

Quand l’utiliser ?

Appel de WebServices

Page 40: NodeJs, une introduction

Quand l’utiliser ?

Utilise V8

Serveur d’API

surtout JSON

Pages web simples

Page 41: NodeJs, une introduction

Quand l’utiliser ?

Avec des fonctions pour

serveurs

Utilise V8

manipulations http bas niveau

TCP / UDPStreaming

Page 42: NodeJs, une introduction

Quand l’utiliser ?

Temps réel / websockets

Page 43: NodeJs, une introduction

Quand ne PAS l’utiliser ?

Page 44: NodeJs, une introduction

Quand ne PAS l’utiliser ?

• Projets nécessitant frameworks pour architecture

• Gros projets en terme de développeurs

• Calculs très gourmands en CPU

• Faire votre blog...

Page 45: NodeJs, une introduction

Qui l’utilise ?

Ebay

WalmartMozilla

LinkedIn

Pinterest

Yahoo!

Page 46: NodeJs, une introduction

Exemple : LinkedIn

• Rails => node.js

• rapidité => x20

• nombre de serveurs : 30 => 3

Page 47: NodeJs, une introduction

NodeJS en est probablement ici

Page 48: NodeJs, une introduction

Le problème de recrutement

vs

Rappelez vous les mauvais départs de JavaScript...

Page 49: NodeJs, une introduction

Le problème de recrutement

• très grosse majorité de novices

• ne savent pas qu’ils sont novices

• JQuery n’es pas JavaScript

Test : demandez leur ce qu’est un «prototype» !

Page 50: NodeJs, une introduction

Le problème de recrutement

• les programmeurs expérimentés dans d’autres langages ont des a priori sur JavaScript

• La programmation asynchrone est particulière, c’est une manière différente de penser et de coder

Page 51: NodeJs, une introduction

Livre conseillé pour prendre un peu de recul sur JavaScript

Autant pour ses enseignements et conseils sur le langage que

pour la démarche intellectuelle de l’auteur

Les chapitres très intéressants :1, 3, 4 & 5

Page 52: NodeJs, une introduction

[email protected]

Merci !

Conseils, prestations et formations en JS avancé