coding dojo node - meetupfiles.meetup.com/18525937/coding dojo node.js elsass jug.pdf ·...
TRANSCRIPT
Coding dojoNode.js
@jsebfranck
/me
● #java, #cloud, #devops, #agile, #tests, #partage, #nodejs, #aws, #docker
● http://jsebfranck.blogspot.fr
● Alcatel-Lucent, Priceminister Rakuten, Viadeo, Xebia, Sfeir
@jsebfranck
Conférences à Strasbourg
● StrasbourgJS (103 membres)● ElsassJug (62 membres)● ReactJS (25 membres)● Node.js (16 membres)● ?
@jsebfranck
Pourquoi j’aime Node.js ?
● 1 mauvaise expérience avec Java (mais des bonnes aussi)
● Légèreté ● Intégration de nouveaux composants● IDE● Communauté...
@jsebfranck
Node.js
● Javascript côté serveur● Projet open source : https://github.com/joyent/node● Ecrit en C, C++ et Javascript● V8 (ECMAScript 5)● Pas de serveur d’application● Thread vs Events● Asynchrone
@jsebfranck
Utilisateurs
@jsebfranck
Dev & Production ready
● Intégration continue● Déploiement continu● Cloud● Performance● Monitoring● Sécurité● Tests● ...
@jsebfranck
Cas d’utilisation
● Comme serveur○ Frontal Web○ Frontal Mobile○ Applications web○ ...
● Comme outil○ Scripting○ Mock○ ...
@jsebfranck
Asynchronisme
step1(function (value1) {
});
@jsebfranck
Asynchronisme v2
step1(function (value1) { step2(value1, function(value2) { });});
@jsebfranck
Asynchronisme : callback hell
step1(function (value1) { step2(value1, function(value2) { step3(value2, function(value3) { step4(value3, function(value4) { // Do something with value4 }); }); });});
@jsebfranck
Asynchronisme : les promesses
Q.fcall(promisedStep1) .then(promisedStep2) .then(promisedStep3) .then(promisedStep4) .then(function (value4) { // Do something with value4 }).catch(function (error) { // Handle any error from all above steps }).done();
@jsebfranck
Les modules
● 148K modules sur https://www.npmjs.com/● Modules de base
○ http○ fs○ ...
● Modules du marché○ express○ winston○ ...
@jsebfranck
Gestion des dépendances
● package.json
● npm○ npm init○ npm install ○ npm uninstall
● Dépendances transitives
Session pratique
@jsebfranck
Session pratique
https://github.com/jsebfranck/nodejs-elsassjug