2009-03-22 9 views
6

C'è una discussione sulla codifica JavaScript nel mio gruppo di lavoro. Alcune persone sostengono che dovremmo usare il nome lungo per una migliore leggibilità; gli altri credono che il nome abbreviato dovrebbe essere preferito allo stesso bit-on-wire.Dovremmo utilizzare il nome lungo o il nome breve nella codifica JavaScript?

Generalmente, si tratta di convenzione di codifica. Un lato ritiene che l'identificatore come "fAutoAdjustWidth" sia OK, mentre altri preferiscono "fAtAjtW".

Quindi, qual è il modo migliore? Dovremmo sacrificare la leggibilità per le prestazioni o no?

+2

Penso che dovresti prendere chiunque pensi onestamente che fAtAjtW sia migliore e farli girare nel loro badge sviluppatore. –

risposta

8

Se sei preoccupato per i bit sul cavo, puoi sempre eseguire un minificatore sul codice. Quindi potresti sviluppare con nomi lunghi e potresti rilasciare con un file molto più piccolo che ha funzionalità equivalenti. Yahoo YUI Compressor sembra che comprenda compressione di spazi bianchi e token.

21

Rendilo leggibile e, se ritieni che il file JS risultante sia troppo grande, utilizza uno dei molti compattatori JS prima di distribuire la versione di produzione, mantenendo la versione di sviluppo con nomi lunghi.

BTW. se sei veramente preoccupato dell'ampiezza di banda, usa mod_deflate.

+0

... o gzip it. Curioso: perché questa non è la risposta accettata? – tim

0

Utilizzare nomi più piccoli in cui non influisce sulla leggibilità del codice. I nomi più grandi vanno bene, ma cerca solo di usarli dove rende davvero più facile per te stesso e gli altri seguire. Infine (e come indicato nelle altre risposte) minify il tuo codice e/o attiva qualche tipo di meccanismo di compressione del server come mod_gzip o mod_deflate di apache per ridurre il numero di bit che attraversano i fili.

Detto questo, darei priorità alla leggibilità rispetto alla compattezza dei nomi di variabili.

1

Mi sconsiglio vivamente di utilizzare identificatori brevi. Basta leggere il tuo esempio per mostrare quanta più documentazione è improvvisamente necessaria, quando vengono usati nomi come fAtAjtW. Ad un certo punto diventerà praticamente impossibile da mantenere e questo solo per salvare alcuni byte da trasferire.

Se l'unico motivo per considerare i nomi "brevi" è rendere lo script risultante più piccolo e quindi risparmiare un po 'di larghezza di banda, preferirei invece usare la compressione gzip, che ti farà risparmiare più di pochi byte per un identificatore.

2

Utilizzare i nomi lunghi che sono appena sufficienti per descrivere le variabili e le funzioni.

Uno dei motivi per cui molti hanno bisogno di nomi brevi è di ridurre le dimensioni del file, ma è possibile farlo con gli strumenti durante il caricamento online.

3

Queste stesse persone sostengono di non scrivere commenti nel loro codice? Sii del tutto chiaro e descrittivo con i tuoi nomi variabili.

+0

Questa è la migliore risposta – Nipuna

2

Forse la preoccupazione non riguarda i bit sul cavo, ma il sovraccarico di lettura e ri/sovra-visualizzazione del codice.

Io tendo a privilegiare i nomi brevi all'interno della funzione e a rendere i nomi delle funzioni il tempo necessario, ma il più breve possibile senza perdere significato utile.

Senza dubbio è un trade-off. Dipende se vuoi che il tuo codice assomigli al linguaggio naturale o che sia più implicito e compatto.

Alcuni nomi di prefissi variabili per inserire informazioni di contesto in essi.Dico, se è necessario, l'IDE dovrebbe fornire tali capacità di iniezione come una sovrapposizione visiva sul codice tramite simboli di contesto.

La prossima versione di Visual Studio renderà la ginnastica di annotazione molto più semplice tramite un meccanismo di estensibilità a grana fine esteso nell'editor stesso. Tuttavia non ho usato Visual Studio per modificare Javascript.

Vedo ora che la vostra preoccupazione è davvero il compromesso dello spazio. Questo non dovrebbe mai, mai, mai essere un problema. Sempre sempre preferire sempre la leggibilità sui bit sul filo, esp. poiché la compressione esiste, come notato dagli altri commentatori.

L'unica cosa che vorrei aggiungere è la precedente, che è che a volte la comprensione è resa più facile con nomi compatti su nomi eccessivamente lunghi. Ma è più difficile ottenere i nomi brevi nel modo giusto. I nomi lunghi sono molto più facili e veloci da inserire nella mia esperienza.

La ragione per i nomi brevi non dovrebbe mai essere la compressione dei dati solo l'efficienza cognitiva. Ciò che funziona è individuale.

3

mentre altri preferiscono "fAtAjtW"

Anche se "bit-on-wire" era un problema (che non è), una convenzione di denominazione come questo renderà il codice completamente impossibile da mantenere dopo la prima settimana di lavoro sul progetto.

Leggere il codice diventerà quasi impossibile, e quando si scrive il codice le persone dovranno costantemente pensare a cose come "era 'fAutoAdjustWidth' abbreviato 'fAtAjtW' o era 'fAutAtW'?". È un'enorme tassa mentale da pagare mentre si scrive codice che si tradurrà in una produttività molto più bassa.

Inoltre, il problema è esacerbato dal fatto che in Javascript si ottiene una nuova variabile per ogni nome errato!

1

Un lato ritiene che l'identificatore come "fAutoAdjustWidth" sia OK, mentre altri preferiscono "fAtAjtW".

'fAtAjtW' è un horror illeggibile e non leggibile. Seriamente, qualcuno preferisce questo? Divertente e impossibile da ricordare - è "AtAjt" o "AutAdj" ...?

'autoAdjustWidth' sarebbe un nome di attributo completo adatto. (Non sono affatto convinto della notazione del prefisso 'f', ma questo è un altro problema.) A volte si desidera un nome molto breve per una variabile di breve durata (ad esempio un temporaneo in un piccolo ciclo), nel qual caso io 'personalmente andare dritto per' var aaw 'piuttosto che l'incubo sopra.

Per quanto riguarda le prestazioni, non ci saranno differenze. A JavaScript non importa quanto tempo crei i nomi delle variabili e, supponendo che stai sgonfiando i tuoi script sulla strada per il browser, la compressione rimuoverà qualsiasi vantaggio di trasferimento dei nomi più brevi.

2

Utilizzare nomi di variabili grandi perché aiutano il programmatore.

Per salvare bit sul cavo, è necessario ridimensionare Javascript prima di distribuirlo sul server di produzione. Dean Edwards' packer ha un'opzione per comprimere i nomi delle variabili, che per te rappresentano il meglio di entrambi i mondi.

1

Chiunque pensi che "fAtAjtW" sia preferibile utilizza una sorta di metodo farmacalogico nella programmazione. fAutoAdjustWidth è molto fine e molto prudente. Le librerie Javascript non usano nomi come fAtAjtW per un motivo.Se sei preoccupato per le dimensioni, probabilmente le tue preoccupazioni sono malriposte. Tuttavia, consiglio di utilizzare una sorta di minificatore. Tuttavia, detto questo, non usare ridicolmente lungo; probabilmente qualcosa oltre 25-30 caratteri sta andando un po 'lontano.

0

Nomi lunghi e descrittivi.

E cercare di rendere i metodi il più unici possibile. Questo aiuta la navigabilità. Se vuoi trovare tutti gli usi di un particolare metodo, è meno probabile che entrerai in conflitto con un altro metodo che ha lo stesso nome.

I moderni IDE JavaScript possono anche eseguire il refactoring del metodo (vedere: http://blue-walrus.com/2013/08/review-javascript-ides/). Questo è molto difficile se i metodi sono chiamati uguali.

Problemi correlati