Présentation et retour d'expérieuce sur node.js + AngularJS au journal Le Monde, novembre 2014.
Présenté dans le cadre d'un « apéro techno » chez Omnilog.
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)
=
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)
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
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)
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.
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