Formation Node.js
Node.js est un environnement d'exécution JavaScript open source qui permet de faire tourner du code JavaScript côté serveur, plutôt que dans un navigateur web. Cela signifie que vous pouvez utiliser Node.js pour créer des applications serveur en utilisant JavaScript. Node.js est basé sur le moteur JavaScript V8 de Google, qui est connu pour sa vitesse d'exécution. Il utilise également un modèle d'exécution asynchrone basé sur des événements, ce qui le rend particulièrement adapté aux applications réseau qui doivent gérer de nombreuses connexions simultanées. Node.js est souvent utilisé pour créer des applications web, des API REST et des services de backend pour les applications mobiles. Il est également utilisé pour créer des outils de ligne de commande et des scripts de serveur. Node.js est populaire pour sa simplicité et sa flexibilité, et il est souvent utilisé en conjonction avec d'autres technologies telles que Express.js (un framework web pour Node.js) et MongoDB (une base de données NoSQL). Si vous souhaitez développer des applications côté serveur en utilisant JavaScript, Node.js est un choix populaire et puissant.
Objectifs pédagogiques
- Maitriser les syntaxes et APIs récents de JavaScript
- Comprendre l'intérêts des modules et des bibliothèques associées
- Utiliser npm pour ajouter et mettre à jour des dépendances
- Ecrire du code asynchrone proprement
- Créer des programmes console avec Node.js
- Développer côté serveur avec Node.js
- Interagir avec une base MongoDB
- Automatiser les tests
Pré-requis
- Maitrise de l'algorithmique
- Bases de JavaScript
- Notions de développement web serveur
Public
- Développeurs
- Chefs de projets
Programme
Jour 1
Introduction
- Historique de Node.js et JavaScript
- Installations de Node.js et npm
- Les IDEs JavaScript Visual Studio Code, WebStorm, EditorConfig
Une réintroduction à JavaScript
- Closures et Scopes
- Fonctions Constructeurs et Prototype
- ES5.1, ES6, ES7, ES8, ES.Next
Jour 2
Les modules JavaScript
- Immediately Invoked Function Express (IIFE)
- Modules CommonJS (require, exports, module)
- Modules ES6 (import, export)
npm
- Créer un projet avec npm
- Installer de nouvelles dépendances
- Mettre à jour des dépendances
- L’importance des lockfiles et des scripts
- Les autres gestionnaires de dépendances : yarn, pnpm
Ecrire du JavaScript Asynchrone
- Callbacks asynchrones et boucle d’événement
- Callback Hell et la bibliothèque Async
- API Promise et la bibliothèque bluebird
- Fonctions asynchrones et async / await
- API Observable et la bibliothèque RxJS
Node.js et les programmes en ligne de commande
- Les APIs pour les programmes CLI : process, fs, readline
- Bibliothèques pour le CLI : chalk, minimist, yargs, commander, inquirer
- Bibliothèques pour manipuler des fichiers : fs-extra, mkdirp, glob, rimraf
Jour 3
Automatiser un build du code front-end
- Les programmes en ligne de commandes : rimraf, browserify, less, node-sass
- Enchainer des tâches : scripts npm, grunt, gulp
- Utiliser une bibliothèque dédiée : webpack
Node.js pour le JavaScript côté serveur
- Les APIs bas niveaux : events, stream, net
- Les modules http, https et http2 de Node
- Le micro-framework Express
- Quels Middlewares utiliser : body-parser, morgan, cors...
- Les autres frameworks : koa, sails, loopback, Nest
- Applications temps-réel avec Socket.io
Jour 4
Accès aux données
- Les bases NoSQL
- Utilisation basique de MongoDB
- Simplifier l’accès avec Mongoose
Tests automatisés
- Pyramide des tests : unitaires, intégrations, fonctionnels, End-to-End (E2E)
- Test Driven Developeent (TDD) avec assert
- Behavior Driven Development (BDD) avec Jasmine
- Implémentation avec mocha, chai
- Couverture de code avec Istanbul
- Sinon.js : mocks, spy et stub
- Parallélisation avec Jest, AVA
- Tests fonctionnels avec chai-http ou supertest
- Tests E2E : selenium, webdriver.io, nightwatch, cucumber
Méthodes mobilisées
- Un formateur validé par nos équipes techniques et pédagogiques sera présent pendant toute la durée de la formation
- Pour les formations en présentiel, une salle de formation sera mise à disposition et équipée d'ordinateurs portables, d'un accès Wi-Fi, d'un projecteur et d'un tableau blanc. En distanciel la session sera suivie sur Zoom ou autre outil de visioconférence sur demande (Teams, Webex, Google Meet...).
- Un support de cours en version numérique sera remis à chaque participant
Modalités d’évaluation
- Questions orales ou écrites (QCM)
- Exercices pratiques
- Auto-positionnement en amont et aval de la formation
Accessibilité aux personnes handicapées
Nous nous engageons à rendre notre formation Node.js accessible aux personnes en situation de handicap. Merci de nous contacter afin que nous puissions réaliser les adaptations nécessaires en amont de la formation.Avis
Ruddy P.
La formation
Formation très complète
Vincent R.
Chayma B.
Saifeddin D.
Laurent L.
Jingyi L.
Nicolas D.
Ludovic R.
Philippe G.
Laurent L.
Jingyi L.
Sarra S.
Gerald H.
Abdeljabar M.
Florent V.
Frédéric G.
Thomas D.
Ines B.
Florent P.
Thomas M.
Amel T.
La formation
Niveau techniques et travaux pratiques sont bien complet par contre je n'arrive pas à faire en parallèle les exemples.
J'ai essayé à suivre le formateur mais je trouve un peu de difficulté pour résoudre les exercices en appliquant ce qui a été dit.
Nizar T.
Badreddine B.
La formation
- Formation avancée, bien adaptable avec une personne qui à déja une petite experience avec les techno web, mais à mon avis, pour quelqu'un qui viens d'une formation basic, il faut passer par une session WebIntermediate un peut alléger
Asma Y.
Thouraya A.
Mouhcen H.
Chaima K.
Livio C.
Lin C.
Ilias L.
Tomy R.
Assem M.
Wedjen M.
Marie B.
Les +
Approche très pédagogique, incluant l'historique des changements, ce qui permet de bien mieux comprendre et donc retenir le fonctionnement actuel
Ayoub M.
Mathieu C.
Patricia D.
Bilel T.
Florent G.
Les +
Pauses assez souvent pour garder la concentration, pédagogie et disponibilité de l'intervenant. Mise à disposition facile des ressources et supports de formation.
Mariem G.
Benjamin G.
Jonathan O.
Wissem A.
Edin K.
Intissar Z.
Hervé C.
Enis K.
Claire R.
Sébastien L.
Matthieu B.
Gilles C.
Stéphane F.
Julien D.
Pascal H.
La formation
Comme pour les autres chapitres, formation un peu trop rapide pour moi, compte tenu de la somme des sujets abordés et leur complexité.
Fabrice C.
Christophe M.
Le formateur
Romain connait tres bien son sujet et il est parfois difficile de suivre tous les concepts, de prendre des notes
Stéphane G.
Les +
Qualité du formateur
Quentin G.
Michel Z.
Vincent G.
Tarek B.
Jérôme C.
Bechir J.
La formation
J'ai bien apprécié l’Example, ça m'a permis de mettre en pratique les notions et mieux assimiler le langage
Chokri G.
Pierre L.
Frédéric R.
Samir B.
Laurent M.
La formation
Merci pour cette 2eme session
Yohann M.
La formation
Effectivement sur la 1ère session, on était passé rapidement sur les aspects Async. Cette journée a permis de mieux comprendre ces concepts. Cet aspect TP a été aussi un plus dans ce training.
Les +
Rappel sur les aspect Aync
Création d'un fichier Json
Mohamed Bechir B.
Bechir J.
La formation
L'exercice du dernier jour est intéressant mais malheureusement nous n'avons pas eu le temps de le finaliser
Commentaire général
Je suis satisfait de la formation dans sa globalité. reste qu'on aurait pu consacré un peu plus de temps pour des exercices pratiques et réduire le temps ou on parcoure le doc sur les APIs ou l'historique vu qu'on part directement sur la dernière version ES
Chokri G.
Tarek B.
Commentaire général
Je ne recommande pas avec ce rythme, la formation etait dans rythme cool dans les 2 1er jours, après c'etait la folie ...
il faut bien gérer le temps et le rythme.
Pierre L.
La formation
Il faudrait passer plus vite sur la partie historique du javascript ainsi que toute les versions de ecma script avec leurs années de disponibilité.
Il faudrait plus insister sur la façon de faire les tests. Il n'y a pas de framework natif de node pour les tests. Choisir alors le module le plus en vogue et réaliser les exercices sous forme de tests. Cela permet de découper plus facilement chaque exercice/scénario.
Le formateur
Rien a redire, maitrise parfaitement le sujet
Frédéric R.
La formation
Je suis satisfait par le plan du cours et les sujets listés : on a bien une bonne overview de JavaScript, TypeScript, node.js et npm.
Toutefois la gestion du temps n'a pas été très bonne:
- trois premiers jours très cools
- deux derniers jours trop rapides
Du coup on a juste effleuré des sujets importants comme l'asynchronisme, la compréhension fine de la boucle JS, les worker threads alors qu'on a passé pas mal de temps sur des APIs où on aurait pu se contenter de dire ce qu'elles font.
Le formateur
Très bonne compétence du formateur, je reproche juste la gestion du temps.
Bonne disponibilité pour les questions, bonne capacité à mettre les choses en perspectives via son expérience.
Les +
L'utilisation de VS Code, les tips partagés par le formateur sur cet IDE.
La dispo des cours et exercices sur github est top.
Commentaire général
Je recommenderais la formation mais en émettant un warning sur la gestion du temps.
Jérôme C.
La formation
- Contenu peut etre encore trop "browser" orienté
- Partie historique peut etre trop longue
Samir B.
Maher M.
La formation
Hello,
I would like to submit my disappointment on how the training was conducted.
The training session would have been more productive had you focused on the principle of practical side of the theories that had been shared. The training felt more like an incoherent theory class as the practical approach and the progressive pedagogy was missing from it. fortunately I combined the training with some online tutorials. the management of time was a disaster knowing that we spent a lot of time on some APIs that are supposed to be found documentation and missed fundamental especially on integration (asyn. Processes, best practices on the events management, classes in TS), the order of some items was inverted and the exercises are more focused on the scenario itself rather the principle of coding which created some confusion on some important notions. the major topics on the typescript was carried quickly and missing how to integrate thing with Thea for instance.
I wish the you are going to take my feedback seriously and incorporate these changes to make it a more interactive, interesting and engaging session for the trainees.
Yohann M.
La formation
La dernière journée était trop dense par rapport aux 1ers jours. Les concepts n'était pas simple à appréhender et donc il nous a manqué du temps pour l'exercice finale et finalement, le petit résumé de chaque jour manque pour cette dernière journée.
Les +
Le résumé du matin qui permet de comprendre des points qui auraient pu nous échappé la veille.
Laurent M.
La formation
Il aurait fallu réserver plus de temps aux exercices, sans doute en diminuant le temps passé sur l'historique des évolutions JS et peut-être moins de temps à parcourir les APIs des libraries en ligne
Le formateur
Très bonne expertise , présentation basée sur l'expérience, ce qui se ressent.
Eviter de passer trop de temps sur ce qui peut nous sembler des détails (comme comprendre comment une librairie fonctionne ...)
Aymen A.
Yosra G.
Nabil S.
Pascale M.
La formation
Difficile de juger le support de cours car nous le parcourons tres rapidement et je n'ai pas pris le temps de le reprendre depuis (mais je compte bien l'utiliser plus tard!). Il est "parfois" difficile de distinguer ce qui est preconise / bonnes pratiques de ce qu'il ne faut pas faire (ce serait bien que cela soit clairement mis en evidence)\.
Les commentaires dans le code sont tres utiles. Il me serait utile d'avoir les exercices corriges avec des commentaires egalement. Je pense qu'il faudrait s'appuyer plus sur des explications en dehors du code, pour que lorsqu'on rentre dans la mise en oeuvre du concept on comprenne mieux ou on va et comment on y va. Le rythme tres soutenu egalement.
Le formateur
Le formateur etant tres a l'aise avec la techno et du coup parfois un peu trop rapide dans la demonstration/mise en oeuvre d'un nouveau concept. Quand il y a plusieurs choix d'implementation on peut se sentir un peu perdu.
Les commentaires dans le code sont tres utiles. Il me serait utile d'avoir les exercices corriges avec des commentaires egalement.
Cédric C.
Maxime D.
La formation
Les slides sont complets et les références sont présentes pour se débrouiller par la suite.
Patrice M.
Eric A.
La formation
Manque parfois certains details lors des exercices
Frédéric C.
La formation
Ok pour cette partie "serveur".
Le formateur
Toujours tres bien.
Les +
RAS
Commentaire général
RAS