Guide de style de codage pour les applications node.js? [fermé]

130

Existe-t-il un (ou plusieurs) guide de style de codage pour node.js? Sinon, quels sont les styles émergents utilisés par les principaux projets de nœuds open-source?

Je recherche un guide (ou plusieurs guides) dans le sens de PEP 8 , le guide canonique de style de codage pour Python. J'ai vu divers guides JavaScript qui ne valent pas la peine d'être liés ici (principalement anciens et ciblés sur JavaScript côté client). J'ai trouvé un guide de style node.js intéressant .

Un guide de style de codage, ou des conventions de codage, devrait inclure (mais sans s'y limiter):

  • Mise en page du code: indentation (2 espaces, 4 espaces, tabulations, ...), retours à la ligne, sauts de ligne, etc.
  • Espace, par exemple, "fonction (arg)" vs "fonction (arg)"
  • Point-virgule ou pas de point-virgule, déclaration var, ...
  • Nommer, par exemple, do_this () contre doThis (), var_name contre varName, ...
  • node.js et les idiomes JavaScript, par exemple, == vs ===, le premier argument de callback est un objet d'erreur, ...
  • Commentaires et documentation
  • Outils d'accompagnement, comme le vérificateur de peluches, le framework de test unitaire, ...

Ce sujet est évidemment très subjectif, mais je pense que c'est une étape importante d'une communauté pour établir un style de codage commun et largement accepté dans le processus de maturation. De plus, ce n'est pas qu'une question de goût. En particulier, des règles comme "utiliser === au lieu de ==" ont une influence directe sur la qualité du code.

alienhard
la source
Je pense que cela dépend vraiment du "framework" que vous utilisez (le cas échéant), par exemple, vous pouvez consulter spludo.com/source/coding-standards, mais d'autres pourraient envisager des approches légèrement différentes
Poelinca Dorin
4
"Est-ce que quelqu'un a un bon ensemble de guides de style" peut être subjectif ou non, mais "Quels sont les styles émergents" l'est certainement. Vous avez déjà trouvé le guide de Felix, dont je suis bien sûr en désaccord avec certains aspects de (dans certains cas fortement) et avec d'autres aspects de. Et c'est ça le problème. Très, très rapidement, il entre dans "Non, le style que je vois émerger utilise des onglets!" "Non, le style que je vois émerger utilise quatre espaces!" "Non, le style que je vois émerger utilise deux espaces!" Quand, bien sûr, ce que les gens veulent vraiment dire, c'est "le style que je préfère", et non "le style que je vois émerger".
TJ Crowder
2
@TJ Croweder Le style que je vois émerger n'utilise aucun espace!
Raynos
+1 question géniale. J'aurais aimé avoir ces liens il y a longtemps.
Bryan Downing
Question subjective.
Niels Abildgaard

Réponses:

120

Je passerais en revue les normes de codage vérifiées par JSLint ou je regarderais l'auteur des normes de codage NPM (Isaac Shlueter) .

Vous pouvez également regarder le style utilisé par les codeurs Node.JS notables:

Je vais jeter le mien là-dedans pour faire bonne mesure;)

Edit: Suggestions de @alienhard

IMO, il y a quelques règles d'or à suivre:

  • N'utilisez jamais withoueval
  • Utiliser ===plus==
  • Déclarez toujours vos variables vardans la portée appropriée - ne revenez pas à la portée globale
  • Enveloppez votre application dans une fermeture (function(){})()si vous prévoyez de publier du code qui s'exécute côté serveur ainsi que dans le navigateur
  • Les rappels doivent prendre errcomme premier argument et s'ils prennent eux-mêmes un rappel comme argument, il doit être le dernier, par exemplecallback(err, param1, param2, callback)

L'indentation, l'espacement entre les accolades et les mots-clés et l'emplacement des points-virgules sont tous une question de préférence.

chriso
la source
2
Merci d'avoir répondu. Je me demandais pourquoi tu n'as pas mentionné Ryan;). Mais j'ai pensé, à partir du wiki officiel du repo de nœuds, qu'ils suivaient le guide de style JavaScript de Google . Je ne connaissais pas celui-là avant ...
alienhard
15

Il y a un nouveau standard en ville.

Utilisez le style standard .

js-standard-style

mightyiam
la source
1
Je ne sais pas pourquoi il n'y a que 3 votes positifs ...
Luc
4
@Luc peut-être à cause de la règle "Pas de point-virgule". Cela semble être un choix étrange pour quelque chose appelé le style "Standard".
Daniel Yankowsky
Aucun point-virgule n'est pas une bonne idée. Cela cassera une minification.
denov
Ce standardpaquet n'aime pas les points-virgules. Si vous aimez les points-virgules, il y a une demi
norme
10

Vous pouvez apprendre beaucoup de bonnes pratiques de style de codage à partir de guides JavaScript orientés client (la plupart d'entre eux s'appliquent également à node.js en général, car la différence entre les côtés client et serveur réside principalement dans les bibliothèques et non dans le langage lui-même). Par exemple, le livre JavaScript Patterns consacre à ce sujet certaines parties du chapitre 2 . Le site Web , le livre et les vidéos de Douglas Crockford sont également des éléments incontournables afin d'adopter des styles de codage JavaScript spécifiques et les meilleures pratiques, je dirais.

yojimbo87
la source
3
+1 au livre de Douglas Crockford "JavaScript: The Good Parts". Il contient énormément d'informations dans un petit livre concis - une lecture lourde, mais l'un des meilleurs livres que j'ai lus.
Alex KeySmith
7

Lors de l'utilisation de node depuis le terminal, il est utile que votre code source utilise des espaces pour l'indentation. Sinon, le curseur "erreur ici" ne s'alignera pas.

Avec onglets:

        var preps = files.map(function(f) { 
            ^
TypeError: Cannot call method 'map' of null

Avec des espaces:

        var preps = files.map(function(f) { 
                          ^
TypeError: Cannot call method 'map' of null

Cela pourrait être un problème uniquement Mac, mais je soupçonne que non.

Daniel Yankowsky
la source
OP a demandé un guide de style. Pas un conseil spécifique.
mightyiam
@mightyiam C'est vrai, mais les règles d'indentation font partie de presque tous les guides de style. Peut-être que mon point peut aider OP à évaluer certains des guides de style que d'autres lieront, ou peut l'aider à développer son propre guide de style.
Daniel Yankowsky
6

Cela fait un moment que je n'ai pas posé cette question ... et en attendant j'ai trouvé cet excellent guide JavaScript:

Principes d'écriture de JavaScript cohérent et idiomatique

https://github.com/rwldrn/idiomatic.js/

alienhard
la source
2

Pour Coffee-Script, où de mauvais retraits signifie des erreurs de compilation

utilisation

:set tabstop=2
:set shiftwidth=2
:set expandtab

projets de café populaires zombie, brunchutilise cette configuration pour les indentations.

Éditer:

En fait, utilisez ceci! https://github.com/paulmillr/code-style-guides (l'un des principaux contributeurs à brunch)

Quang Van
la source