Upload
toxicode
View
2.208
Download
2
Tags:
Embed Size (px)
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 ?
Citation preview
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
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
Merci !
Conseils, prestations et formations en JS avancé