Domanda

Un aspetto di JavaScript su cui è difficile trovare informazioni sono le pratiche di casing. Per pratiche di involucro intendo quale stile di involucro (es. Caso di cammello, caso di pascal, ecc.) Dovrebbe essere usato per quali elementi (costruttori, funzioni private, funzioni pubbliche).

L'unica regola che ho sentito è stata da una lezione di Douglas Crockford sul teatro YUI, affermando che i costruttori dovrebbero essere le uniche funzioni che iniziano con una lettera maiuscola.

Oltre a ciò non sembrano esserci molti standard di casing che le persone seguono in javascript.

Qualcuno conosce le migliori pratiche di involucro per javascript e perché è ragionevole usarle?

Inoltre segui uno stile di casing con i tuoi file .js?

È stato utile?

Soluzione

Preferisco PascalCase per i costruttori e camelCase per tutto il resto. Questo è lo stile che utilizza la libreria standard JS e beh ... ogni framework JS che ho visto finora :)

E utilizzo la convenzione di denominazione all_lowercase per tutti i file serviti dal web. Esistono alcuni file system senza distinzione tra maiuscole e minuscole.

Altri suggerimenti

Il linguaggio principale utilizza InitialCaps per costruttori (ad es. Object, Date, Number, RegExp) e camelCase per metodi e proprietà (ad es. qualcosa.toString (), Quantity.valueOf (), regexp.ignoreCase). Questa convenzione è seguita anche nelle specifiche e nelle implementazioni DOM (ad es. HTMLElement.setAttribute ()). Quindi ha più senso adottare la stessa convenzione o finisci con un orribile miscuglio di stili come:

var number_of_fish_requested = document.getElementById("fish").value;
var fish_count = parseInt(number_of_fish_requested, 10);

che diventa completamente confuso, non solo per scrivere ma, cosa molto più importante, leggere.

(Passi più tempo a leggere il codice, provando a eseguire il debug o a modificarlo, di quanto tu non scriva mai in primo luogo.)

Quello che ho visto finora è una grande varietà di standard di involucro.

Per quanto mi riguarda, uso lo stile C # per scrivere il mio codice JavaScript. Uso molto le classi (bene funzioni come classi e di solito non hanno funzioni indipendenti.) Quindi, utilizzo PascalCase per nomi di classe, metodi pubblici, proprietà e tutte le variabili globali e camelCase per argomenti, variabili locali e funzioni private. Questo in qualche modo riflette il mio ambiente comune, aiutando a distinguere gli ambiti variabili. Tendo anche a mantenere le funzioni della mia classe in un file separato con lo stesso nome del mio ClassName (ClassName.js, ClassName.min.js).

Questo riguardava il mio approccio.

Ho anche notato che i programmatori Java, seguono le regole Java (e lo stile di scrittura ricorda il linguaggio Java). I programmatori di Ruby on Rails seguono i propri standard di denominazione come underscore_separated_var_name .

Inoltre, come hai detto, c'è una tendenza a usare molto pascalCase nella denominazione in framework molto popolari i cui autori provengono da comunità diverse come Linux / Open source community e sviluppatori Microsoft (jQuery, knockout.js, JSJaC, ecc. )

Dovrei notare che nessuno di questi metodi è sbagliato o giusto, quando si tratta di JS. Lo scopo principale delle convenzioni di denominazione e della strutturazione dei file è la leggibilità. Se sei coerente, in futuro tu e i tuoi colleghi sviluppatori capirete rapidamente e andrete avanti con il vostro codice.

Preferisco camelCase per tutto tranne che per i costruttori. Il motivo (e credo che questo sia il motivo per cui anche il Sig. Crockford lo abbia suggerito) è perché in altre lingue, come Java, la convenzione è di capitalizzare le tue classi, ed è per questo che vengono utilizzati i costruttori.

Questo è il mio $ 0,02.

Tutte le lettere minuscole con separatori di sottolineatura sono le più facili da leggere; segue il linguaggio naturale. & Quot; Migliore " ti porterà in una guerra santa; la realtà è che il caso non conta tanto quanto gli altri problemi di progettazione, ma è un argomento facile da polarizzare.

ALongButNotReallyReadableIdentifier
an_even_longer_but_completely_readable_identifier

La risposta accettata è vera ma ci sono alcune eccezioni. In window.JSON e window.XMLHttpRequest il termine è in maiuscolo.

Inoltre molte persone usano PascalCase per oggetti di tipo enum in Javascript e valori in maiuscolo all'interno. A volte gli spazi dei nomi vengono eseguiti anche in PascalCase.

Esempio: MyCompany.Web.UI.MyComponent.ThemeOption = {NERO: 0, ARGENTO: 1, BLU: 2}

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top