Vous le savez certainement, mais les frameworks Node.js pullulent en permanence, chaque année apportant son nouveau lot de “This is a revolution, you must abandon everything and use our product”. En témoigne ce strip de CommitStrip très représentatif de la chose.
Sauf que bon.
Je me suis mis à NodeJS lorsque j’ai découvert Grunt, puis Gulp, mais rien de tout ça ne concernait des applications web.
L’an dernier j’ai tenté de me former en solo à un framework Node.js, ce fut un échec : pour un mec comme moi qui vient de PHP et qui fait uniquement du PHP et du JS (côté client seulement) depuis dix ans, surtout après avoir lu les PSR (PHP Standard Recommendations) et vu la documentation de Symfony, le tout, accompagné des cours d’OpenClassrooms, aujourd’hui, le moindre framework Node.js est obsolète dès sa release en v1, et toutes les documentations à son sujet sont caduques au bout de quelques mois à peine.
Du coup, je pose ici plusieurs questions :
- Existe-t-il de réels standards de codage en Javascript ?
Il en existe sur PHP, par exemple, mais en JS on a aussi besoin de standards qui permettent dans un premier temps de structurer le code intelligemment ? (je ne parle pas de MVC, mais plutôt de concepts d’inclusion/require-like, structure d’un module, d’un framework, etc.)
- Est-ce qu’un vrai expert Node.js, ça existe vraiment aujourd’hui ?
Je veux dire, étant donné la quantité astronomique de modules Node.js, ainsi que la surabondance de dépendances dans nos fichiers package.json
, qui conduisent à parfois à des centaines de dépendances, les changements constants dans la communauté, l’avènement des compilateurs/transpileurs, la déprécation envisagée de certains gestionnaires de packages (a.k.a. Bower), etc., tout ça est en perpétuel mouvement, et un vrai “expert” devrait connaître au moins 1 framework “sur le bout des doigts”, ou alors a contrario avoir déjà bien testé toutes les nouveautés.
- Quels sont les meilleurs moyens de se former sur des frameworks Node.js ?
J’ai personnellement tenté Express.js et j’ai compris les bases, mais il manquait beaucoup de choses, ensuite j’ai tenté d’apprendre à utiliser Sails.js par deux fois (à 10 mois d’intervalle), mais à chaque fois, la quantité astronomique de concepts n’est pas suffisamment bien documentée à mon goût, sans compter la documentation qui est désuète quelques mois plus tard (j’ai suivi la doc officielle de Passport.js pour faire une authentification à la con, impossible de le faire fonctionner, et le problème c’est que même pour cette simple bibliothèque, la documentation ne me semble pas suffisamment claire non plus, puisqu’elle est sortie du contexte du framework dans lequel on l’utilise…
Aujourd’hui je suis extrêmement frustré parce que j’ai envie de développer un mini-jeu web qui me trotte dans la tête depuis longtemps, mais j’ai besoin de websockets, je voulais utiliser un framework Node.js pour avoir tout-en-un et me former également sur Express/Sails, mais avec le simple fait que l’authentification ne fonctionne pas m’a totalement refroidi après les dizaines d’heures que j’ai passées à comprendre les concepts (requête, websocket, templating, configuration, policies, etc.).
Du coup, aujourd’hui, techniquement je cherche à me former pour pouvoir développer mon jeu, mais je commence à me résigner et à me dire que je ferais mieux de le faire en PHP, vu que le framework Node.js que j’utiliserai va forcément être obsolète à un moment…