Les fichiers doivent-ils être nommés quelque chose avec des hyphens.js, camelCased.js ou autre chose?
Je n'ai pas trouvé la réponse à cette question ici .
Les fichiers doivent-ils être nommés quelque chose avec des hyphens.js, camelCased.js ou autre chose?
Je n'ai pas trouvé la réponse à cette question ici .
Réponses:
Une convention de dénomination possible consiste à utiliser quelque chose de similaire au schéma de dénomination utilisé par jQuery. Ce n'est pas universellement adopté mais c'est assez courant.
product-name.plugin-ver.sion.filetype.js
où la paire product-name
+ plugin
peut également représenter un espace de noms et un module . Les version
et filetype
sont généralement facultatifs.
filetype
peut être quelque chose par rapport à la façon dont le contenu du fichier est. On voit souvent:
min
pour les fichiers minifiéscustom
pour les fichiers personnalisés ou modifiésExemples:
jquery-1.4.2.min.js
jquery.plugin-0.1.js
myapp.invoice.js
Je ne connais aucune convention particulière pour les fichiers javascript car ils ne sont pas vraiment uniques sur le Web par rapport aux fichiers CSS ou HTML, ou à tout autre type de fichier comme celui-ci. Il y a certaines choses "sûres" que vous pouvez faire qui rendent moins probable que vous rencontriez accidentellement un problème multiplateforme:
various-scripts.js
, un trait d'union est un séparateur sûr et utile et couramment utilisé.Il n'y a pas de convention officielle et universelle pour nommer les fichiers JavaScript.
Il existe différentes options:
scriptName.js
script-name.js
script_name.js
sont toutes des conventions de dénomination valides, mais je préfère la convention de dénomination suggérée par jQuery (pour les plugins jQuery, bien que cela fonctionne pour n'importe quel JS)
jquery.pluginname.js
La beauté de cette convention de dénomination est qu'elle décrit explicitement la pollution globale de l'espace de noms ajoutée.
foo.js
ajoute window.foo
foo.bar.js
ajoute window.foo.bar
Parce que j'ai omis le contrôle de version: il devrait venir après le nom complet, de préférence séparé par un trait d'union, avec des points entre les versions majeures et mineures:
foo-1.2.1.js
foo-1.2.2.js
foo-2.1.24.js
The beauty to this naming convention is that it explicitly describes the global namespace pollution being added.
, jamais remarqué
Foo
ou myFoo
, nommeriez-vous simplement le fichier Foo.js
ou myFoo.js
respectivement?
La question dans le lien que vous avez donné parle de la dénomination des variables JavaScript, pas de la dénomination des fichiers, alors oubliez cela pour le contexte dans lequel vous posez votre question.
Quant à la dénomination des fichiers, c'est uniquement une question de préférence et de goût. Je préfère nommer les fichiers avec des traits d'union, car je n'ai pas à chercher la touche Maj, comme je le fais lorsque je traite des noms de fichiers camelCase; et parce que je n'ai pas à me soucier des différences entre les noms de fichiers Windows et Linux (les noms de fichiers Windows ne respectent pas la casse, au moins via XP).
Ainsi, la réponse, comme tant d'autres, est «cela dépend» ou «c'est à vous de décider».
La seule règle que vous devez suivre est d'être cohérent dans la convention que vous choisissez.
Je préfère généralement les tirets avec des minuscules, mais une chose non encore mentionnée est que parfois il est agréable d'avoir le nom de fichier correspondant exactement au nom d'un module unique ou d'une fonction instanciable contenue à l'intérieur.
Par exemple, j'ai un module révélateur déclaré avec var knockoutUtilityModule = function() {...}
dans son propre fichier nommé knockoutUtilityModule.js, bien que je préfère objectivement knockout-utility-module.js.
De même, comme j'utilise un mécanisme de regroupement pour combiner des scripts, j'ai pris la définition de fonctions instanciables (modèles de vue modèles, etc.) chacune dans leur propre fichier, de style C #, pour la maintenabilité. Par exemple, ProductDescriptorViewModel vit seul à l'intérieur de ProductDescriptorViewModel.js (j'utilise des majuscules pour les fonctions instanciables).
MyPlugin
classe entraitMyPlugin.js
. LeMenuItem
composant React entreraMenuItem.js
. D'autres développeurs nécessiteront / importeront «votre-module-cool» et en utiliseront plusieurs symboles, alors nommez-lecool-module.js
. -