SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
APÉRO TECHNO - 21 NOVEMBRE 2014 
NODE.JS + 
ANGULARJS 
AU JOURNAL LE MONDE 
Par Yves-Emmanuel Jutard 
0
À PROPOS 
Ex. développeur "corporate" C / C++ 
Migration volontaire vers le "bleeding edge" 
Arrivée chez Omnilog en février 2014
LIENS 
Blog 
Github 
Wiki technique perso 
http://offirmo.net/ 
https://github.com/Offirmo 
http://offirmo.net/wiki/ 
http://www.yves-emmanuel.jutard.com/
BLEEDING EDGE EN 2014 ? 
1ères versions en 2009 
Font encore le buzz (même si ça se calme)
BLEEDING EDGE ? 
Qu'est-ce qui est si bien ? 
Qu'est-ce qui n'est pas si bien ? 
Est-ce pour moi ?
PLAN 
1. 
2. 
3. 
4. 
5. 
Contexte 
node.js 
AngularJS 
Bonnes pratiques au Monde 
Opinions et conclusions 
+ questions à volonté !
QUI SONT LES PIONNIERS EN 
FRANCE ? 
NOUVELLE APPLI ÉDITORIALE "LE 8"
Nouveau système éditorial. Fusion des éditions : 
print = journal papier 
numérique = site web, mobiles, tablettes...
DÉMO
(NOTES) 
Technos utilisées
"LE 8" : DÉFIS 
appli critique le résultat est tiré à ~ 
charge 
utilisateurs exigeants 
462 000 exemplaires quotidiens
JAVASCRIPT REVOLUTION 
le langage le plus incompris du monde 
accidentellement génial (comme l'ensemble du web ;) 
déjà partout, énorme pool de développeurs
(NOTES) 
"The world's most misunderstood language" 
"the new lingua franca" 
"Will JavaScript take over the programming world?" 
"Why JavaScript Will Become The Dominant Programming 
Language Of The Enterprise"
JAVASCRIPT REVOLUTION 
un langage de script comme un autre python, ruby 
langage interprété = productivité++ typage fort pas si utile 
héritage prototypal = productivité++ vent de fraicheur sur l'objet 
JSON = productivité++ au revoir XML lourd 
closures intégrées = magie insoupçonnée
(NOTES) 
même âge que ruby ! (1995) 
ce sont les tests qui font la qualité du code 
le tout objet est lourd et inefficace 
ruby et python ont aussi le design pattern réacteur, 
mais en lib, et la std API a des I/O bloquantes 
pendant ce temps, java discute encore de comment 
implémenter les closures
LE NOUVEAU VENU 
interpréteur javascript tout neuf by google 
(2008) 
open source, performant
…une lib "from scratch" au meilleur du moment : 
design pattern réacteur intégré merci les closures 
I/O non bloquantes merci les closures 
modèle évènementiel 
micro-framework souplesse, liberté 
gestionnaire de paquet (npm, 2011) 
=
(LIENS) 
http://nodejs.org/ 
Des applications ultra-rapides avec Node.js 
http://www.nodebeginner.org/ 
mes notes
micro-framework : 
ligne de commande :
cible le web dynamique, connecté 
performance++ pour les serveurs 
mono-thread = productivité++ 
APIs REST, micro-services 
projets, code et développeurs full stack (en théorie)
(NOTES) 
MICROSERVICES 
http://fr.slideshare.net/xgorse/klubup-forumphp-join 
http://martinfowler.com/articles/microservices.html
RÉFÉRENCES 
PAYPAL 
migré depuis Java 
++ full-stack engineers 
« The node.js app was built almost twice as fast with fewer 
people. Written in 33% fewer lines of code. Constructed with 
40% fewer files. » 
« Double the requests per second vs. the Java application 
[even when] using a single core for the node.js application 
compared to five cores in Java. We expect to increase this 
divide further. 35% decrease in the average response time »
RÉFÉRENCES 
NETFLIX 
migré depuis Java 
« huge gains in developer productivity » 
« We're hoping to migrate all of that as soon as we can »
RÉFÉRENCES 
GROUPON 
migré depuis RoR 
SOA, API attaquée par mobile + web 
« We’re currently serving ~50,000rpm and our overall 
response times have dropped dramatically »
RÉFÉRENCES 
EBAY 
++push, real-time
contre-points 
pas pour le calcul intensif ou tâches longues 
callback hell (promises ?) 
API parfois brouillonne (évènement ? exception ?) 
API non terminée, version stable encore à venir, ex. 
mode cluster 
qq problèmes de stabilité ? 
pb de gouvernance en cours
(LIENS) 
Farewell Node.js
PENDANT CE TEMPS, LE 
FRONT-END... 
de plus en plus complexe 
passe lui aussi au dynamique, connecté 
"un nouveau framework par jour"
INTRODUCING... 
pour appli cliente propre et organisée
(LIENS) 
Site officiel http://angularjs.org/ 
mes notes 
Ultimate guide to learning AngularJS in one day 
learn angular by building a gmail clone
inclusions dans le HTML 
Résultat :
framework déclaratif (comme le HTML et c'est bien) 
permet de modulariser son appli 
solide, made by google, grosse communauté 
prévu testable dès la conception (et c'est bien !) 
pas parfait, mais îlot de stabilité dans le monde fou du 
front-end !
TESTABLE ? 
testable en test unitaire 
rapide 
accès au DOM (phantomJS) 
testable en e2e (selenium + protractor)
TESTABLE ? 
DÉMO
gros framework 
beaucoup de concepts à intégrer
(NOTES)
Attention au SEO 
Attention aux perfs 
DI complexe, bootstrap 
gros concurrent qui monte : react (facebook) 
environnement front encore instable (ES6, polymer, 
web components…) 
AngularJS 2.0 proche
(LIENS) 
All About Angular 2.0 
Angular 2 Core 
« While massive changes [about the web] have happened in 
the last couple of years, they pale in comparison to what's 
coming in the next 1-3 years » ( Rob Eisenberg 
)
NODE + ANGULAR = MAGIE ? 
La techno aide, mais la solidité est dans les bonnes 
pratiques.
BONNES PRATIQUES 
Gestion de projet 
Code linting (jshint) 
Code review (Github entreprise) 
Tests unitaires 
Tests e2e 
Intégration continue (Jenkins) 
Déploiement roulant 
Supervision
GESTION DE PROJET 
dès la conception 
personnas, API first, expert UX...
CODE LINTING
CODE REVIEW
TESTS UNITAIRES
TESTS E2E
INTÉGRATION CONTINUE
DÉPLOIEMENT ROULANT
SUPERVISION
CONCLUSIONS 
technos récentes : rencontré bugs, veille nécessaire, 
besoin devs motivés 
front-end encore en recherche, évolutions majeures à 
venir 
promesse de code reuse moyennement tenues 
micro-libs magiques mais versions à maintenir 
micro-libs = créativité mais bonnes pratiques peinent à 
émerger 
microservices : la prod ne suit pas 
microservices : question organisationelles 
agile, dette = compétence et discipline nécessaire
THE END 
QUESTIONS + MERCI À TOUS !!

Contenu connexe

Tendances

AngularJS - Présentation (french)
AngularJS - Présentation (french)AngularJS - Présentation (french)
AngularJS - Présentation (french)Yacine Rezgui
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile AppHabib MAALEM
 
comprendre angularJS en 10 minutes
comprendre angularJS en 10 minutescomprendre angularJS en 10 minutes
comprendre angularJS en 10 minutesDavid Bo
 
Débuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJSDébuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJSFrédéric DUPERIER
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontendyllieth
 
Introduction au Framework AngularJs
Introduction au Framework AngularJsIntroduction au Framework AngularJs
Introduction au Framework AngularJsRadhoueneRouached
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)Rui Carvalho
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptxEsokia
 
Introduction à Angular 2
Introduction à Angular 2Introduction à Angular 2
Introduction à Angular 2Laurent Duveau
 
Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeOuadie LAHDIOUI
 
Angluars js
Angluars jsAngluars js
Angluars jsRYMAA
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsOCTO Technology
 
Angular 6, CLI 6, Material 6 (french)
Angular 6, CLI 6, Material 6 (french)Angular 6, CLI 6, Material 6 (french)
Angular 6, CLI 6, Material 6 (french)Laurent Duveau
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mvMael Monnier
 

Tendances (20)

AngularJS - Présentation (french)
AngularJS - Présentation (french)AngularJS - Présentation (french)
AngularJS - Présentation (french)
 
Intro à angular
Intro à angularIntro à angular
Intro à angular
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
 
Introduction à Angular 2
Introduction à Angular 2Introduction à Angular 2
Introduction à Angular 2
 
comprendre angularJS en 10 minutes
comprendre angularJS en 10 minutescomprendre angularJS en 10 minutes
comprendre angularJS en 10 minutes
 
Débuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJSDébuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJS
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
 
Introduction au Framework AngularJs
Introduction au Framework AngularJsIntroduction au Framework AngularJs
Introduction au Framework AngularJs
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptx
 
Introduction à Angular 2
Introduction à Angular 2Introduction à Angular 2
Introduction à Angular 2
 
jQuery vs AngularJS
jQuery vs AngularJS jQuery vs AngularJS
jQuery vs AngularJS
 
Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitée
 
Node.js
Node.jsNode.js
Node.js
 
Angluars js
Angluars jsAngluars js
Angluars js
 
Présentation Angular 2
Présentation Angular 2 Présentation Angular 2
Présentation Angular 2
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
 
Angular 6, CLI 6, Material 6 (french)
Angular 6, CLI 6, Material 6 (french)Angular 6, CLI 6, Material 6 (french)
Angular 6, CLI 6, Material 6 (french)
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mv
 

En vedette

Découvrir et modifier wikipédia !
Découvrir et modifier wikipédia !Découvrir et modifier wikipédia !
Découvrir et modifier wikipédia !Yves-Emmanuel Jutard
 
Power Leveling your TypeScript
Power Leveling your TypeScriptPower Leveling your TypeScript
Power Leveling your TypeScriptOffirmo
 
Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Corinne Schillinger
 
ProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsBinary Studio
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endFrançois Petitit
 
Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015
Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015
Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015Codemotion
 
Сергей Больщиков "Protractor Tips & Tricks"
Сергей Больщиков "Protractor Tips & Tricks"Сергей Больщиков "Protractor Tips & Tricks"
Сергей Больщиков "Protractor Tips & Tricks"Fwdays
 
ATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD ApproachATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD ApproachAgile Testing Alliance
 
Tests ihm automatises avec selenium
Tests ihm automatises avec seleniumTests ihm automatises avec selenium
Tests ihm automatises avec seleniumsojavawest
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Ippon
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...ENSET, Université Hassan II Casablanca
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Palestra node.js
Palestra   node.js Palestra   node.js
Palestra node.js Suissa
 

En vedette (20)

Découvrir et modifier wikipédia !
Découvrir et modifier wikipédia !Découvrir et modifier wikipédia !
Découvrir et modifier wikipédia !
 
Rex E2E
Rex E2ERex E2E
Rex E2E
 
Power Leveling your TypeScript
Power Leveling your TypeScriptPower Leveling your TypeScript
Power Leveling your TypeScript
 
Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)
 
ProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applications
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-end
 
Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015
Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015
Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015
 
Protractor: Tips & Tricks
Protractor: Tips & TricksProtractor: Tips & Tricks
Protractor: Tips & Tricks
 
Angular 2 - Better or worse
Angular 2 - Better or worseAngular 2 - Better or worse
Angular 2 - Better or worse
 
Сергей Больщиков "Protractor Tips & Tricks"
Сергей Больщиков "Protractor Tips & Tricks"Сергей Больщиков "Protractor Tips & Tricks"
Сергей Больщиков "Protractor Tips & Tricks"
 
ATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD ApproachATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD Approach
 
Tests ihm automatises avec selenium
Tests ihm automatises avec seleniumTests ihm automatises avec selenium
Tests ihm automatises avec selenium
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Palestra node.js
Palestra   node.js Palestra   node.js
Palestra node.js
 

Similaire à Apéro techno node.js + AngularJS @Omnilog 2014

Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanneDidier Durand
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Jonathan Martin
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3Nicolas Lœuillet
 
Demarrer ionic en 5 etape
Demarrer ionic en 5 etapeDemarrer ionic en 5 etape
Demarrer ionic en 5 etapeZaïd BOUDAMOUZ
 
Présentation GWT au JUG Montréal 14 avril 2011
Présentation GWT au JUG Montréal 14 avril 2011Présentation GWT au JUG Montréal 14 avril 2011
Présentation GWT au JUG Montréal 14 avril 2011Claude Coulombe
 
Gwt présentation-jug-14avr2011
Gwt présentation-jug-14avr2011Gwt présentation-jug-14avr2011
Gwt présentation-jug-14avr2011Montreal JUG
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Société ELOSI
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !vincent aniort
 
Challenge Exakis - Visual studio 2015
Challenge Exakis - Visual studio 2015Challenge Exakis - Visual studio 2015
Challenge Exakis - Visual studio 2015Jonathan Le Guellec
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders BattleArnaud Héritier
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vieJean-Philippe Briend
 
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vieJean-Philippe Briend
 
Présentation Eranea à Open Source Now 2012
Présentation Eranea à Open Source Now 2012Présentation Eranea à Open Source Now 2012
Présentation Eranea à Open Source Now 2012Didier Durand
 

Similaire à Apéro techno node.js + AngularJS @Omnilog 2014 (20)

Javavs net
Javavs netJavavs net
Javavs net
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3
 
Demarrer ionic en 5 etape
Demarrer ionic en 5 etapeDemarrer ionic en 5 etape
Demarrer ionic en 5 etape
 
Présentation GWT au JUG Montréal 14 avril 2011
Présentation GWT au JUG Montréal 14 avril 2011Présentation GWT au JUG Montréal 14 avril 2011
Présentation GWT au JUG Montréal 14 avril 2011
 
Gwt présentation-jug-14avr2011
Gwt présentation-jug-14avr2011Gwt présentation-jug-14avr2011
Gwt présentation-jug-14avr2011
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
 
Challenge Exakis - Visual studio 2015
Challenge Exakis - Visual studio 2015Challenge Exakis - Visual studio 2015
Challenge Exakis - Visual studio 2015
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
 
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
 
Présentation Eranea à Open Source Now 2012
Présentation Eranea à Open Source Now 2012Présentation Eranea à Open Source Now 2012
Présentation Eranea à Open Source Now 2012
 

Dernier

Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesangevaleryn
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptbentaha1011
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxdocteurgyneco1
 

Dernier (9)

Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniques
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
 

Apéro techno node.js + AngularJS @Omnilog 2014

  • 1. APÉRO TECHNO - 21 NOVEMBRE 2014 NODE.JS + ANGULARJS AU JOURNAL LE MONDE Par Yves-Emmanuel Jutard 0
  • 2. À PROPOS Ex. développeur "corporate" C / C++ Migration volontaire vers le "bleeding edge" Arrivée chez Omnilog en février 2014
  • 3. LIENS Blog Github Wiki technique perso http://offirmo.net/ https://github.com/Offirmo http://offirmo.net/wiki/ http://www.yves-emmanuel.jutard.com/
  • 4. BLEEDING EDGE EN 2014 ? 1ères versions en 2009 Font encore le buzz (même si ça se calme)
  • 5. BLEEDING EDGE ? Qu'est-ce qui est si bien ? Qu'est-ce qui n'est pas si bien ? Est-ce pour moi ?
  • 6. PLAN 1. 2. 3. 4. 5. Contexte node.js AngularJS Bonnes pratiques au Monde Opinions et conclusions + questions à volonté !
  • 7. QUI SONT LES PIONNIERS EN FRANCE ? NOUVELLE APPLI ÉDITORIALE "LE 8"
  • 8. Nouveau système éditorial. Fusion des éditions : print = journal papier numérique = site web, mobiles, tablettes...
  • 10.
  • 12. "LE 8" : DÉFIS appli critique le résultat est tiré à ~ charge utilisateurs exigeants 462 000 exemplaires quotidiens
  • 13. JAVASCRIPT REVOLUTION le langage le plus incompris du monde accidentellement génial (comme l'ensemble du web ;) déjà partout, énorme pool de développeurs
  • 14. (NOTES) "The world's most misunderstood language" "the new lingua franca" "Will JavaScript take over the programming world?" "Why JavaScript Will Become The Dominant Programming Language Of The Enterprise"
  • 15. JAVASCRIPT REVOLUTION un langage de script comme un autre python, ruby langage interprété = productivité++ typage fort pas si utile héritage prototypal = productivité++ vent de fraicheur sur l'objet JSON = productivité++ au revoir XML lourd closures intégrées = magie insoupçonnée
  • 16. (NOTES) même âge que ruby ! (1995) ce sont les tests qui font la qualité du code le tout objet est lourd et inefficace ruby et python ont aussi le design pattern réacteur, mais en lib, et la std API a des I/O bloquantes pendant ce temps, java discute encore de comment implémenter les closures
  • 17. LE NOUVEAU VENU interpréteur javascript tout neuf by google (2008) open source, performant
  • 18. …une lib "from scratch" au meilleur du moment : design pattern réacteur intégré merci les closures I/O non bloquantes merci les closures modèle évènementiel micro-framework souplesse, liberté gestionnaire de paquet (npm, 2011) =
  • 19. (LIENS) http://nodejs.org/ Des applications ultra-rapides avec Node.js http://www.nodebeginner.org/ mes notes
  • 20. micro-framework : ligne de commande :
  • 21. cible le web dynamique, connecté performance++ pour les serveurs mono-thread = productivité++ APIs REST, micro-services projets, code et développeurs full stack (en théorie)
  • 22. (NOTES) MICROSERVICES http://fr.slideshare.net/xgorse/klubup-forumphp-join http://martinfowler.com/articles/microservices.html
  • 23. RÉFÉRENCES PAYPAL migré depuis Java ++ full-stack engineers « The node.js app was built almost twice as fast with fewer people. Written in 33% fewer lines of code. Constructed with 40% fewer files. » « Double the requests per second vs. the Java application [even when] using a single core for the node.js application compared to five cores in Java. We expect to increase this divide further. 35% decrease in the average response time »
  • 24. RÉFÉRENCES NETFLIX migré depuis Java « huge gains in developer productivity » « We're hoping to migrate all of that as soon as we can »
  • 25. RÉFÉRENCES GROUPON migré depuis RoR SOA, API attaquée par mobile + web « We’re currently serving ~50,000rpm and our overall response times have dropped dramatically »
  • 27. contre-points pas pour le calcul intensif ou tâches longues callback hell (promises ?) API parfois brouillonne (évènement ? exception ?) API non terminée, version stable encore à venir, ex. mode cluster qq problèmes de stabilité ? pb de gouvernance en cours
  • 29. PENDANT CE TEMPS, LE FRONT-END... de plus en plus complexe passe lui aussi au dynamique, connecté "un nouveau framework par jour"
  • 30. INTRODUCING... pour appli cliente propre et organisée
  • 31. (LIENS) Site officiel http://angularjs.org/ mes notes Ultimate guide to learning AngularJS in one day learn angular by building a gmail clone
  • 32. inclusions dans le HTML Résultat :
  • 33.
  • 34. framework déclaratif (comme le HTML et c'est bien) permet de modulariser son appli solide, made by google, grosse communauté prévu testable dès la conception (et c'est bien !) pas parfait, mais îlot de stabilité dans le monde fou du front-end !
  • 35. TESTABLE ? testable en test unitaire rapide accès au DOM (phantomJS) testable en e2e (selenium + protractor)
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. gros framework beaucoup de concepts à intégrer
  • 43. Attention au SEO Attention aux perfs DI complexe, bootstrap gros concurrent qui monte : react (facebook) environnement front encore instable (ES6, polymer, web components…) AngularJS 2.0 proche
  • 44. (LIENS) All About Angular 2.0 Angular 2 Core « While massive changes [about the web] have happened in the last couple of years, they pale in comparison to what's coming in the next 1-3 years » ( Rob Eisenberg )
  • 45. NODE + ANGULAR = MAGIE ? La techno aide, mais la solidité est dans les bonnes pratiques.
  • 46. BONNES PRATIQUES Gestion de projet Code linting (jshint) Code review (Github entreprise) Tests unitaires Tests e2e Intégration continue (Jenkins) Déploiement roulant Supervision
  • 47. GESTION DE PROJET dès la conception personnas, API first, expert UX...
  • 55. CONCLUSIONS technos récentes : rencontré bugs, veille nécessaire, besoin devs motivés front-end encore en recherche, évolutions majeures à venir promesse de code reuse moyennement tenues micro-libs magiques mais versions à maintenir micro-libs = créativité mais bonnes pratiques peinent à émerger microservices : la prod ne suit pas microservices : question organisationelles agile, dette = compétence et discipline nécessaire
  • 56. THE END QUESTIONS + MERCI À TOUS !!