I file devono essere denominati qualcosa-con-hyphens.js, camelCased.js o qualcos'altro?
Non ho trovato la risposta a questa domanda qui .
I file devono essere denominati qualcosa-con-hyphens.js, camelCased.js o qualcos'altro?
Non ho trovato la risposta a questa domanda qui .
Risposte:
Una possibile convenzione di denominazione consiste nell'utilizzare qualcosa di simile allo schema di denominazione utilizzato da jQuery. Non è universalmente adottato ma è abbastanza comune.
product-name.plugin-ver.sion.filetype.js
dove la coppia product-name
+ plugin
può anche rappresentare uno spazio dei nomi e un modulo . Il version
efiletype
di solito sono opzionali.
filetype
può essere qualcosa rispetto a come è il contenuto del file. Spesso visti sono:
min
per file minimizzaticustom
per file personalizzati o modificatiEsempi:
jquery-1.4.2.min.js
jquery.plugin-0.1.js
myapp.invoice.js
Non sono a conoscenza di alcuna convenzione particolare per i file javascript in quanto non sono davvero unici sul Web rispetto ai file CSS o file HTML o qualsiasi altro tipo di file come quello. Ci sono alcune cose "sicure" che puoi fare che rendono meno probabile che ti imbatterai accidentalmente in un problema multipiattaforma:
various-scripts.js
, un trattino è un separatore sicuro, utile e comunemente usato.Non esiste una convenzione ufficiale, universale , per la denominazione dei file JavaScript.
Ci sono alcune varie opzioni:
scriptName.js
script-name.js
script_name.js
sono tutte le convenzioni di denominazione validi, però io preferisco il jQuery suggerito convenzione di denominazione (per i plugin jQuery, anche se funziona per qualsiasi JS)
jquery.pluginname.js
Il bello di questa convenzione di denominazione è che descrive esplicitamente l'inquinamento dello spazio dei nomi globale che viene aggiunto.
foo.js
Aggiunge window.foo
foo.bar.js
Aggiunge window.foo.bar
Perché ho lasciato fuori il controllo delle versioni: dovrebbe venire dopo il nome completo, preferibilmente separato da un trattino, con punti tra le versioni principali e secondarie:
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.
, mai notato che
Foo
o myFoo
, semplicemente, si nominerebbe il file Foo.js
o myFoo.js
rispettivamente?
La domanda nel link che hai dato parla della denominazione delle variabili JavaScript, non della denominazione dei file, quindi dimentica quello per il contesto in cui fai la tua domanda.
Per quanto riguarda la denominazione dei file, è puramente una questione di preferenze e gusti. Preferisco nominare i file con trattini perché non devo raggiungere il tasto Maiusc, come faccio quando ho a che fare con i nomi dei file camelCase; e poiché non devo preoccuparmi delle differenze tra i nomi dei file Windows e Linux (i nomi dei file Windows non fanno distinzione tra maiuscole e minuscole, almeno tramite XP).
Quindi la risposta, come tante, è "dipende" o "dipende da te".
L'unica regola da seguire è quella di essere coerenti con la convenzione scelta.
Preferisco generalmente trattini con lettere minuscole, ma una cosa non ancora menzionata è che a volte è bello che il nome del file corrisponda esattamente al nome di un singolo modulo o funzione istantanea contenuta all'interno.
Ad esempio, ho un modulo rivelatore dichiarato var knockoutUtilityModule = function() {...}
all'interno del suo file chiamato knockoutUtilityModule.js, anche se oggettivamente preferisco knockout-utility-module.js.
Allo stesso modo, dal momento che sto usando un meccanismo di raggruppamento per combinare gli script, ho preso la definizione di funzioni istanziabili (modelli di vista con modelli ecc.) Ciascuno nel proprio file, stile C #, per manutenibilità. Ad esempio, ProductDescriptorViewModel vive da solo all'interno di ProductDescriptorViewModel.js (utilizzo maiuscole per funzioni istantanee).
MyPlugin
classe sarebbe entrataMyPlugin.js
. IlMenuItem
componente React entreràMenuItem.js
. Altri sviluppatori richiedono / importano il "tuo-modulo-cool" e ne usano più simboli, quindi dai un nomecool-module.js
. -