NodeJS et l'organisation de son code?

a marqué ce sujet comme résolu.

Bonjour à tous, J'ai commencé à programmer sous NodeJS, et en typescript depuis un moment. Et je remarque que c'est la liberté, mais la liberté qui tue quand on ne sais pas organiser son code :lol:

Je voulais aussi savoir comment optimiser son code, sans prendre de mauvaises habitude (Je visite beaucoup Github pour regarder de gros projet sous Node, mais je trouve que ça ne m'aide pas assez)

J'ai notamment chercher des solutions sur des sites, forums mais aucun n'approfondissent Node pour bien organiser son code, avoir un code propre, le laisser au top pour qu'il sois bien relu par un gars qui vas passer par la suite :D

On m'apprend notamment un tas de "technique, normes, habitudes, dans quel conditions utiliser un outil" qui ont l'air d'être vrai mais que je n'ai jamais vue dans des blogs/tutoriaux - Enfin NodeJS est bien vaste mais niveau soutenance, j'ai l'impression que c'est un peu la fac - bien que j'aime beaucoup ce langage. Et je ne parle que FR ;)

Donc si vous avez des liens, des conseilles, je vous remercie déjà d'avance!

+0 -0

Pour la structure du code tu peux essayer de suivre la structure MCV, tu as cette réponse sur stackoverflow qui explique la structure des dossiers d'une méthode MCV.


De mon côté, j'ai aussi cherché une méthode, mais aucun site aborde la structure du code comme si c'était une connaissance innée. J'ai pris l'habitude de faire un fichier launcher par environnement (prod1, prod2, local, dev, etc), ce fichier définit la config et prépare l'environnement.

Les fichiers launcher incluent mon fichier main.js qui démarre les différents processus de mon code (ex : Websocket, express, readline personnalisé, etc…). Et il fait la jonction entre mes différentes classes, il effectue aussi l'ouverture des ports et charge la configuration ainsi que le rooter/firewall (-> gestion des permissions).

Je mets tous mon code js dans le dossier src, structurer à l'esprit des Bundles de Symfony, c'est-à-dire par grand thème/fonctionnalité. Tous mes fichiers statics finissent dans ./public/.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
node/
   ./.gitignore
   ./launcher-prod1.js
   ./launcher-prod2.js
   ./launcher-*****.js
   ./main.js
   ./package.json
   ./src/ -> Le code js
   ./app/ -> La config (root, config des lib, etc.)
   ./public/ -> Les fichiers statics

Je viens de regarder une vidéo sur Nodejs d'une conférence par les employés de la société iAdvize : STRUCTURER MA PREMIÈRE APPLICATION NODEJS. C'est un vrai retour d'expérience d'une entreprise qui explique leur choix et leur façon de faire. J'ai trouvé quelques outils intéressant ainsi que leur démarche pour mettre en production, j'ai apprécié leur explication pour éviter des problèmes de dépendance qui change avec shrinkwrap & d'autres explications ici.

Par contre ça n'aborde pas l'aspect programmation, comment écrire son code (bien qu'il site lodash dans leur vidéo).

Mais plutôt l'aspect partage (travail collaboratif) et la mise en prod (une configuration globale multi-projet, séparation des environnements (avec Common env), mise en place d'une documentation (avec Swagger), ainsi que la mise en place de test (mocha) & d'alerte avec coverage, david). Le fonctionnement est synthétisé par le modèle des 12 facteurs.

C'est moins pratique car pas disponible tout le temps, mais je passe de régulièrement sur différents chats, et je demande à plusieurs codeurs très habitués du langage que je veux apprendre ce que je pourrait améliorer dans mon code, et j'essaye d'en extraire ce qui ressort le plus ;)

En fait c'est très difficile de t'aider sans savoir ce que tu fabriques et avec quoi, SharkCyan. :)

Par exemple une application Meteor ne se structure pas du tout comme une application Express.

Node est un framework très minimal, tu peux tout faire avec par contre de ce fait y'a pas de structure canonique pour un projet. Si tu fais une single page web application c'est pas pareil que si tu fais un backend sans vues qui est juste une API REST. Si tu fais un outil en ligne de commande c'est pas pareil que si tu fais un blog. Etc.

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte