Présenté par Thierry ABALEA et Alexandre VICTOOR.
Sera également présenté à Devoxx France 2018.
-
Tout en Javascript, y compris le serveur
-
Derrière Node, il y a une fondation avec beaucoup de grosses boites : Google, IBM, etc.
-
Créé en 2009 par Ryan Dahl (tout seul dans son garage, était un dev de sites web en Ruby)
-
aime la prog concurrentielle
-
inspiré du framework eventMachine
→ sa conclusion : pour être rapide, il faut des I/O non bloquantes
-
Quand on a ses I/O non bloquantes : on a des Event Loop.
-
NodeJS : tout est non-bloquant (Ryan a choisi javascript coimme base car mono-threadé "fait pour" dans le navigateur )
-
Ryan a pris V8, le moteur javascript de Chrome, et libUV, comme lib C++ pour les I/O.
→ on peut détecter le nombre de CPUs, et forker le cluster sur tous les CPUS
-
Flow : type checker développé par Facebook (ajoute un système de typage pour javascript), écrit en OCaml
-
Typescript : ajoute une phase de compilation
Le reste des examples sera en Typescript
Va également utiliser le framework Nest
-
Sandbox Editor : éditeur de code en ligne, tourne dans un navigateur (utilise l’éditeur de code Microsoft Monaco, qui est également utilisé par Visual Studio Code)
Grosse communauté, ecosystème très présent
Chrome DevTools : chrome://inspect
→ voir cet article de Medium pour plus de détails sur le debugging Node.js avec Google Chrome
Nécessite de lancer Node avec le paramètre --inspect
:
$ node --inspect <your_file>.js
-
HTTP : Express et Koa (ce dernier utilisé chez FLuo, et pourrait être vu comme le sucesseur d’Express. Il a été créé par les créateurs d’Express)
-
base de données : photo (très bon driver MySQL, écrit uniquement en Javascript)
-
async await
(qui est néanmoins très décrié à la SGCIB, notamment par Cyrille)
-
Intérêt : React Native qui est utilisé sur Mobile
Chez Fluo : + 200 000 lignes de code en Javascript
-
démarre très très vite
-
prend peu de mémoire
→ donc très bon pour le cloud
→ Nouvelle édition du livre de Martin Fowler "refactoring", ne proposera plus d’exemples en Java mais tout en Javascript.
Les 5 bonnes raisons :
→ La sécurité est un point auquel il faut faire très attention !
-
Fluo travaille en monorepo
-
Flow et React sont les 2 grosses dépendances de Fluo → dans l’absolu peu d’adhérence à des frameworks avec Node.js
Après, no silver bullet : Node et le JS ne répondent pas à tout, il faut savoir avoir plusieurs cordes à son arc
📎
|
Pour rappel, Facebook et plusieurs gros sites web utilisent PHP |
💡
|
Retour de Thierry
reality check → il faut prendre la techno qui permet d’aller vite ET de recruter facilement (il est actuellement difficile de trouver des devs Java)
|
-
slides de la présentation : https://devoxxfr2018-nodejs.github.io/devoxxfr2018-conf-nodejs
-
Blogs posts sur NodeJS : https://medium.freecodecamp.org/@samerbuna
-
NodeJS la première conf : https://www.youtube.com/watch?v=ztspvPYybIY