Avant-propos
Les avantages de bonnes habitudes d'écriture JavaScript sont évidents. Aujourd'hui, Bingo recommande à tout le monde la spécification de programmation Javascript de Dojo. Il est recommandé que tout le monde puisse apprendre de cette spécification pour écrire du Javascript. Merci à i.feelinglucky pour la traduction.
Préface
Toute violation de ce guide est autorisée si elle améliore la lisibilité.
Tous les codes doivent être faciles à lire pour les autres.
Référence de lecture rapide
API principale Veuillez utiliser le style suivant :
结构 | 规则 | 注释 |
模块 | 小写 | 不要使用多重语义(Never multiple words) |
类 | 骆驼 | |
公有方法 | 混合 | 其他的外部调用也可以使用 lower_case(),这样的风格 |
公有变量 | 混合 | |
常量 | 骆驼 或 大写 |
Règles
Commentaires
结构 | 规则 |
私有方法 | 混合,例子:_mixedCase |
私有变量 | 混合,例子:_mixedCase |
方法(method)参数 | 混合,例子:_mixedCase, mixedCase |
本地(local)变量 | 混合,例子:_mixedCase, mixedCase |
Variables privées | Mixte, exemple : _mixedCase |
Paramètres de méthode | Mixte, exemple : _mixedCase, MixedCase |
Variables locales (locales) | Mixte, exemple : _mixedCase, MixedCase
|
Convention de dénomination
1. Les noms de variables doivent être en lettres minuscules.
2. La dénomination des classes utilise des règles de dénomination des chameaux, par exemple :
Compte, EventHandler
3. Les constantes doivent être déclarées devant l'objet (classe) ou la variable d'énumération. Les variables d'énumération doivent être nommées avec une signification réelle, et leurs membres doivent utiliser des règles de dénomination de chameau ou utiliser des lettres majuscules :
4. Les mots abrégés ne peuvent pas utiliser de noms en majuscules comme noms de variables :
getInnerHtml(), getXml(), XmlDocument
5. La commande de la méthode doit être un verbe ou une phrase verbale :
obj.getSomeValue()
6. Les classes publiques doivent être nommées en utilisant des noms mixtes (mixedCase).
7. Les variables CSS doivent être nommées en utilisant les mêmes variables de classe publique auxquelles elles correspondent.
8. Les membres d'attribut variable des classes privées doivent être nommés avec un nom mixte (mixedCase) et précédés d'un trait de soulignement (_). Par exemple :
9. Si la variable est définie comme privée, un trait de soulignement doit être ajouté devant elle.
this._somePrivateVariable = déclaration;
10. Les variables universelles doivent utiliser des noms de types cohérents avec leurs noms :
setTopic(topic) // La variable topic est une variable de type Topic
11. Tous les noms de variables doivent utiliser des noms anglais.
12. Si la variable a une portée plus large (grande portée), elle doit utiliser une variable globale ; dans ce cas, elle peut être conçue comme membre d'une classe ; D'un autre côté, si la portée est petite ou si la variable est privée, utilisez un nom concis.
13. Si une variable a sa propre valeur de retour implicite, évitez d'utiliser ses méthodes similaires :
getHandler(); // Évitez d'utiliser getEventHandler()
14. Les variables publiques doivent exprimer clairement leurs propres attributs pour éviter les significations ambiguës des mots, par exemple :
MouseEventHandler
, pas MseEvtHdlr.
Veuillez prêter à nouveau attention à cette règle, les avantages de le faire sont très évidents. Il peut exprimer clairement le sens défini par l'expression. Par exemple :
dojo.events.mouse.Handler // au lieu de dojo.events.mouse.MouseEventHandler
15. La classe/constructeur peut être nommée en étendant le nom de sa classe de base, afin que le nom de sa classe de base puisse être trouvé correctement et rapidement :
Gestionnaire d'événements
UIEventHandler
Gestionnaire d'événements de souris
Une classe de base peut raccourcir son nom en partant du principe de décrire clairement ses propriétés :
MouseEventHandler par opposition à MouseUIEventHandler.
Convention de dénomination spéciale
Le terme « get/set » ne doit pas être associé à un champ à moins qu'il ne soit défini comme une variable privée.
Les noms de variables précédés de « est » doivent être des valeurs booléennes, et de la même manière, ils peuvent être « a », « peut » ou « devrait ».
Le terme « calculer » en tant que nom de variable doit faire référence à une variable qui a été calculée.
Le terme « trouver » en tant que nom de variable fera référence à la variable pour laquelle la recherche a été effectuée.
Le terme « initialiser » ou « init » en tant que nom de variable doit faire référence à une classe ou à un autre type de variable qui a été instanciée (initialisée).
Les variables de contrôle UI (User Interface) doivent avoir le type de contrôle après le nom, par exemple : leftComboBox, TopScrollPane.
Les formes plurielles DOIVENT être utilisées pour nommer les collections.
Les noms de variables commençant par « num » ou « count » sont classiquement des nombres (objets).
Il est recommandé d'utiliser des variables portant des noms tels que « i », « j », « k » (et ainsi de suite) pour les variables répétées.
Les termes supplémentaires doivent utiliser des mots supplémentaires, tels que : obtenir/définir, ajouter/supprimer, créer/détruire, démarrer/arrêter, insérer/supprimer, commencer/fin, etc.
Utilisez des abréviations pour les noms qui peuvent être abrégés.
Évitez les noms de variables booléennes ambigus, par exemple :
isNotError, isNotFound est illégal
Il est recommandé d'ajouter « Exception » ou « Erreur » après le nom de la variable pour les classes d'erreur.
Si la méthode renvoie une classe, le nom doit indiquer ce qu'elle renvoie ; s'il s'agit d'une procédure, il doit indiquer ce qu'elle fait.
Fichier
Veuillez utiliser 4 taquets de tabulation pour l'indentation.
Si votre éditeur prend en charge les balises de fichiers, veuillez ajouter la ligne suivante pour rendre notre code plus facile à lire :
// vim:ts=4:noet:tw=0:
Note de traduction : Les étrangers utilisent davantage l'éditeur VIM, vous pouvez choisir de suivre cet article.
Le pliage du code doit paraître complet et logique :
var o = unObjet.get(
Expression1,
Expression2,
Expression3
);
Remarque : L'indentation des expressions et des déclarations de variables doit être cohérente.
Remarque : les paramètres de fonction doivent être explicitement indentés et les règles d'indentation doivent être cohérentes avec les autres blocs.
Variable
Mise en page
Bloquer
Un extrait de code normal devrait ressembler à ceci :
L'instruction IF devrait ressembler à ceci :
Une instruction FOR devrait ressembler à ceci :
L'instruction WHILE devrait ressembler à ceci :
L'instruction DO… WHILE devrait ressembler à ceci :
L'instruction SWITCH devrait ressembler à ceci :
L'instruction TRY… CATCH devrait ressembler à ceci :
Les instructions IF – ELSE, WHILE ou FOR sur une seule ligne doivent également avoir des parenthèses, mais elles peuvent être écrites comme ceci :
if (condition){ déclaration ; }
while (condition){ déclaration ; }
for (initialisation; condition; mise à jour){ instruction; }
Vierge
Remarques
Documentation
Ce qui suit fournit quelques méthodes de base de description de fonctions ou d'objets :Résumé : Décrivez brièvement le but de cette fonction ou de cet objet
Description : Une brève description de cette fonction ou classe
Retour : décrit ce que cette fonction renvoie (sans compter le type de retour)
Informations sur les fonctions de base
Aucune description de la valeur de retour
Déclaration de fonction
Dans certains cas, les appels de fonctions et les déclarations sont invisibles. Dans ce cas, nous n'avons aucun moyen d'ajouter des instructions à la fonction (pour que le programme l'appelle). Si vous rencontrez cette situation, vous pouvez utiliser une classe pour encapsuler la fonction.
Remarque : Cette méthode ne peut être utilisée que lorsque la fonction n'a aucun paramètre initialisé. Dans le cas contraire, ils sont ignorés.
Variable
Étant donné que la déclaration des variables d'instance, des variables prototypes et des variables externes est cohérente, il existe de nombreuses façons de déclarer et de modifier des variables. La définition et le positionnement spécifiques doivent indiquer le nom, le type, la portée et d'autres informations de la variable là où elle apparaît pour la première fois.
Annotations variables dans les objets
doit être marqué de la même manière que les valeurs et méthodes des objets, par exemple lorsqu'elles sont déclarées :
Valeur de retour
Étant donné qu'une fonction peut renvoyer plusieurs valeurs (types) différentes en même temps, un commentaire de type de retour doit être ajouté après chaque valeur de retour. Des commentaires peuvent être faits dans la ligne. Si toutes les valeurs de retour sont du même type, indiquez le type de retour ; s'il existe plusieurs valeurs de retour différentes, marquez le type de retour comme "mixte".
Pseudocode (à discuter)
Parfois, vous devez ajouter une description de processus fonctionnel pour cette fonction ou cette classe dans une fonction ou une classe. Si vous prévoyez de faire cela, vous pouvez utiliser /*======== (= le caractère apparaît de préférence 5 fois ou plus), ce qui a l'avantage de ne pas avoir à ajouter ces éléments au code (Annotation : auteur original Cela signifie probablement un système de gestion de code).
Il semble qu'il y aura un très long commentaire dans /*====== et =====*/. Vous pouvez envisager de le supprimer une fois l'ajustement de la fonction terminé.
fonction(/*module.pseudo.kwArgs*/ kwArgs){
dojo.debug(kwArgs.url);
dojo.debug(kwArgs.mimeType);
>
Lien original : http://dojotoolkit.org/developer/StyleGuide
Traduit par : i.feelinglucky{at}gmail.com de http://www.gracecode.com