Cos'è la convenzione di denominazione del nome file javascript? [chiuso]


283

I file devono essere denominati qualcosa-con-hyphens.js, camelCased.js o qualcos'altro?

Non ho trovato la risposta a questa domanda qui .


2
Una buona convenzione di denominazione è quella di nominare i nomi dei file come vedresti quell'entità nel codice. La MyPluginclasse sarebbe entrata MyPlugin.js. Il MenuItemcomponente React entrerà MenuItem.js. Altri sviluppatori richiedono / importano il "tuo-modulo-cool" e ne usano più simboli, quindi dai un nome cool-module.js. -
Dan Dascalescu il

1
Questo post non è basato su opzioni. In effetti è importante. Qui hai una guida fatta da Google - google.github.io/styleguide/jsguide.html#file-name . (Guida di stile JavaScript di Google)
zwitterion

Risposte:


184

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+ pluginpuò anche rappresentare uno spazio dei nomi e un modulo . Il versionefiletype di solito sono opzionali.

filetypepuò essere qualcosa rispetto a come è il contenuto del file. Spesso visti sono:

  • min per file minimizzati
  • custom per file personalizzati o modificati

Esempi:

  • jquery-1.4.2.min.js
  • jquery.plugin-0.1.js
  • myapp.invoice.js

31
Sono d'accordo su quello che hai detto. Ma c'è una cosa con cui sto attualmente lottando: e se il 'plugin' contiene due parole? Separarli da punti? jquery.myPlugin-1.0.0.js o jquery.my.plugin-1.0.0.js o jquery.my_plugin-1.0.0.js o jquery.myplugin-1.0.0.js o forse anche jquery.my-plugin- 1.0.0.js? Forse puoi completare i tuoi esempi con quello, grazie!
maggio

4
E i moduli AMD ? Se si utilizza la versione nei nomi dei file, è necessario modificare molti file se il numero di versione cambia.
Knut

3
@junior, questo è un vecchio post, ma una rapida ricerca di pergamene rivela che i plugin jquery non seguono alcuna convenzione particolare. Sembra che (1) spingendo le parole insieme, (2) usando la colonna vertebrale e (3) usando la camelCase siano tutti usati con frequenza approssimativamente equivalente.
bholben

Da non dimenticare che alcuni versioning e file system hanno problemi nel riconoscere la differenza tra una parola in minuscolo e la stessa parola in maiuscolo o camelCase (es. "ThisWord" è lo stesso di "thisword" in alcuni ambienti). Qualcosa da tenere a mente quando si utilizza la convenzione camelCase.
amypellegrini,

@knut non dovresti caricare tramite i nomi delle versioni, ma mappando il nome del modulo su un file di versione specifico.
dalore,

132

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:

  1. Usa tutti i nomi di file minuscoli. Esistono alcuni sistemi operativi che non fanno distinzione tra maiuscole e minuscole per i nomi dei file e l'uso di tutte le lettere minuscole impedisce inavvertitamente l'uso di due file che differiscono solo nel caso in cui potrebbero non funzionare su alcuni sistemi operativi.
  2. Non utilizzare spazi nel nome file. Mentre questo può essere tecnicamente fatto funzionare, ci sono molte ragioni per cui gli spazi nei nomi dei file possono causare problemi.
  3. Un trattino è OK per un separatore di parole. Se si desidera utilizzare una sorta di separatore per più parole anziché uno spazio o una camelcase come in various-scripts.js, un trattino è un separatore sicuro, utile e comunemente usato.
  4. Pensa all'utilizzo dei numeri di versione nei nomi dei file. Quando si desidera aggiornare gli script, pianificare gli effetti della cache del browser o della CDN. Il modo più semplice di utilizzare la memorizzazione nella cache a lungo termine (per velocità ed efficienza), ma aggiornamenti immediati e sicuri quando si aggiorna un file JS è includere un numero di versione nel nome file o percorso distribuito (come jQuery fa con jquery-1.6.2.js ), quindi si esegue il bump / modifica del numero di versione ogni volta che si aggiorna / modifica il file. Ciò garantirà che nessuna pagina che richiede la versione più recente sia mai stata pubblicata da una cache.

56

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

10
+1 per The beauty to this naming convention is that it explicitly describes the global namespace pollution being added., mai notato che
Adrien Be

2
La mia unica domanda è cosa fare se si dispone di un file che crea Fooo myFoo, semplicemente, si nominerebbe il file Foo.jso myFoo.jsrispettivamente?
punto

14

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.


6
+1 per il ragionamento trattino vs camelCase.
cellepo,

6

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).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.