nodejs, une introduction

Post on 27-May-2015

2.206 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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

pierre.lancien@toxicode.fr

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)

Qu’est-ce que c’est ?

JavaScript

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

Welcome to my homepage !!!

I love kittens !!!!

They are so cute !

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

JavaScript, ça ressemble à :

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

JavaScript

Avec des fonctions pour

serveurs

Hors du navigateur

JS JS

JS

Pourquoi en parle-t-on ?

JavaScript

Avec des fonctions pour

serveursUtilise V8

Hors du navigateur

JavaScript

Avec des fonctions pour

serveursÉvénementiel

Utilise V8

Hors du navigateur

Événementiel

Asynchrone

JavaScript

Avec des fonctions pour

serveursÉvénementiel

Utilise V8

Hors du navigateur

Synchrone

Appel HTTP

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

Synchrone

Appel HTTP

Serveur bloqué pendant ce temps

Synchrone

Autre appel HTTP

Mis en attente...

Asynchrone

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

Synchrone

Asynchrone

Synchrone

Asynchrone

Un exemple très simple

Exemple

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

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

Asynchrone

Avec des fonctions pour

serveursÉvénementiel

Utilise V8

Hors du navigateur

JavaScript

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 :

Remise en contexte :l’histoire de JavaScript

JavaScript

N’est pas un mini

1995

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

JavaScript

vs

1996

La guerre des navigateurs porte un coup fatal au JS

JavaScript1999-2000

Macromedia / Adobe Flash

Remplace JavaScript comme moyen phare pour rendre les pages web dynamiques

JavaScript2004-2007

Asynchronous JavaScript And XML

Relance un intérêt pour JavaScript

JavaScript2007-2008

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

par guerre des navigateurs.

JavaScript2008-2010

V8

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

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

JavaScript2010-...

Backbone

Quand l’utiliser ?

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

JavaScript

Quand l’utiliser ?

lorsqu’on aime JavaScript...

Quand l’utiliser ?

JS JS

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

Quand l’utiliser ?

Appel de WebServices

Quand l’utiliser ?

Utilise V8

Serveur d’API

surtout JSON

Pages web simples

Quand l’utiliser ?

Avec des fonctions pour

serveurs

Utilise V8

manipulations http bas niveau

TCP / UDPStreaming

Quand l’utiliser ?

Temps réel / websockets

Quand ne PAS l’utiliser ?

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

Qui l’utilise ?

Ebay

WalmartMozilla

LinkedIn

Pinterest

Yahoo!

Exemple : LinkedIn

• Rails => node.js

• rapidité => x20

• nombre de serveurs : 30 => 3

NodeJS en est probablement ici

Le problème de recrutement

vs

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

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» !

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

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

pierre.lancien@toxicode.fr

Merci !

Conseils, prestations et formations en JS avancé

top related