Convenzioni di denominazione Javascript

12

Sono di origine Java e sono nuovo di JavaScript. Ho notato molti metodi JavaScript che utilizzano nomi di parametri a carattere singolo, come nell'esempio seguente.

doSomething(a,b,c)

Non mi piace, ma un altro sviluppatore JavaScript mi ha convinto che questo è stato fatto per ridurre le dimensioni del file, notando che i file JavaScript devono essere trasferiti al browser.

Poi mi sono trovato a parlare con un altro sviluppatore. Mi ha mostrato il modo in cui Firefox troncherà i nomi delle variabili per caricare più velocemente la pagina. È una pratica standard per i browser web?

Quali sono le conversioni di denominazione best practice da seguire durante la programmazione in JavaScript? La lunghezza dell'identificatore è importante e, in tal caso, in quale misura?

    
posta ManuPK 13.03.2012 - 14:58
fonte

6 risposte

26

Scoprirai che gli sviluppatori stessi sono not utilizzando nomi di variabili brevi. Durante lo sviluppo, utilizzano nomi di variabili significativi e dettagliati.

Quindi , nel processo di generazione / rilascio, il codice che hanno scritto viene eseguito tramite un minificatore / obfuscator con l'intenzione di ridurre al minimo la dimensione del file, come best practice per accelerare un sito web. Questo è un passaggio facoltativo se ti interessa che molto delle prestazioni. La maggior parte dei piccoli siti web non lo fa.

Tu , come sviluppatore, non dovresti prendersi cura del processo di minimizzazione / offuscamento; scrivi il tuo codice in modo che sia leggibile, significativo, ben documentato e ben strutturato. Quindi se ti preoccupi troppo delle prestazioni (facoltativo, non dimenticare!), inserisci un minificatore / offuscatore nel processo di rilascio per ridimensionare il codice (rimuovere spazi bianchi, nuove linee, commenti, ecc.) e per offuscarla (ad esempio abbreviare i nomi delle variabili). Un buon articolo che spiega l'offuscamento e la minificazione può essere trovato qui .

Inoltre, Desktop FireFox non tronca i nomi delle variabili periodo . Il troncamento dei nomi di variabili è lì per accelerare il download della pagina. Quando FireFox riceve il file, è già stato scaricato, quindi non è necessario. Il tuo amico può eseguire un plugin che sta facendo questo; in tal caso, digli di disinstallarlo, perché è inutile.

Per il completamento, i alcuni (mobili) browser hanno la possibilità di utilizzare server di medie dimensioni, che intercettano le risposte delle risorse richieste e li comprimono per te (che potrebbe em> include la minificazione dei file JavaScript). Si noti che la compressione viene eseguita sul server (cioè prima si è scaricata la pagina), quindi il potenziale vantaggio di scaricare un file più piccolo, piuttosto che nel browser una volta scaricato il file (come suggerito nella domanda). Tali browser mobili includono Opera Mini e versioni più recenti di Google Chrome (almeno su iOS, non sono sicuro di Android). Per ulteriori informazioni, vedi qui .

    
risposta data 13.03.2012 - 18:33
fonte
11

No, non tutti i browser ridurranno automaticamente il codice JavaScript per migliorare le prestazioni.

Tuttavia, nel caso di JavaScript, non dovresti sacrificare la leggibilità / manutenibilità del codice per i guadagni in termini di velocità di elaborazione o sicurezza perché ci sono strumenti chiamati offuscatori e altri strumenti chiamati shinkers (o compresso rs) che sono stati progettati per questo scopo.

Ricorda, non pre-ottimizzare. Se la tua pagina si sta caricando abbastanza velocemente e non hai alcun contenuto troppo sensibile nel tuo JavaScript, non preoccuparti. Dai un nome alle tue variabili con nomi significativi. La leggibilità del codice è molto importante per la manutenibilità e dovrebbe essere raramente, se non mai, sacrificata.

Se desideri un riferimento ad alcune buone convenzioni di codifica JavaScript, ti consiglio di utilizzare questi .

    
risposta data 13.03.2012 - 15:02
fonte
2

Non preoccuparti delle dimensioni del file prima del tempo. Sebbene sia sempre una preoccupazione, la leggibilità e la manutenibilità sono più importanti.

Detto questo, dovresti probabilmente serving minified (ad esempio, tramite YUI Compressor ) versioni dei tuoi script comunque.

Se ti interessano le best practice per lo sviluppo web in generale, ti suggerisco di leggere Cosa dovrebbe sapere ogni programmatore sullo sviluppo web?

    
risposta data 13.03.2012 - 15:43
fonte
1

Ho lavorato in JavaScript per un tempo molto lungo.

Avevamo uno standard di denominazione che dovevi usare Notazione ungherese per tutte le variabili.

Sembrava funzionare bene. So che ci sono casi contro l'utilizzo di questo, ma ha funzionato bene per noi. Soprattutto quando hai enormi file JavaScript in cui devi trovare qualcosa.

Vorrei avvertire prematuramente di ottimizzare. Molto probabilmente finirai con un codice disordinato che in realtà non funziona molto più velocemente.

    
risposta data 13.03.2012 - 18:08
fonte
1

La lunghezza dell'identificatore non ha importanza. Come detto da altri, in Minification la produzione può essere utilizzata per ridurre i tempi di download degli script. In effetti, dovrebbe essere seguita una convenzione di codifica / denominazione accettabile, soprattutto perché JavaScript è un linguaggio bizzarro e per tanto tempo JavaScript è stato trascurato come una semplice cosa per portare a termine il lavoro. Se stai cercando un posto per la convenzione sui nomi, Guida di stile JavaScript di Google è un buon posto. Suggerisce,

  • functionNamesLikeThis, ad es. getCashbackData () {}
  • variableNamesLikeThis, ad es. var alertInterval = 10;
  • ClassNamesLikeThis, ad es. var CustomerOrder = {getOrderLines: function () {}}
  • EnumNamesLikeThis, ad esempio var ColorOfChoice = {White: "#FFFFFF"}
  • methodNamesLikeThis, ad es. var CustomerOrder = {getOrderLine: function () {}}
  • SYMBOLIC_CONSTANTS_LIKE_THIS, ad es. var EPOCH_UNIX="01011970"
risposta data 04.10.2012 - 10:31
fonte
0

Infuriato dalla filosofia del "sviluppatore di codice pulito" (e dato che ora sai dai post precedenti che con la minimizzazione della dimensione dei nomi delle tue variabili avrà un impatto zero sulle prestazioni) potrei solo consigliarti:

  1. Trova l'IDE migliore per le tue esigenze di sviluppo personale con funzionalità di completamento automatico e funzionalità intellisense, come aptana, netbeans, eclipse (tutto gratuito) o uno dei numerosi prodotti commerciali (se avessi un gioco gratuito, guarderei i prodotti di JetBrains)
  2. Scrivi il tuo codice in modo da rendere superfluo ogni commento. Ciò significa, invece di scrivere

    getXy(e) { return [e.pageX, e.pageY ] }
    

    che potrebbe significare davvero qualsiasi cosa (specialmente in un pazzo linguaggio tipizzato come js;) fai in modo che il codice si esprima da solo

    getPageCoordinatesFromEvent(event) { 
        return [event.pageX, event.pageY ];
    }
    

    In un buon IDE, in genere non si digiterà mai un nome di variabile tanto lungo due volte - secondi in cui si digitano alcune lettere e si preme semplicemente Invio dal completamento automatico. Se insisti a digitare da solo ogni personaggio, un buon IDE ti noterà comunque un errore di battitura comunque. Questo è solo un esempio molto superficiale, quindi suggerisco strongmente (non come una forma di critica ma come una raccomandazione onesta) che tu

  3. Ottieni i libri "Clean Code" di Robert C.Martin e / o "Pragmatic Programmer" di Hunt / Thomas e non farti più questo tipo di domande - sarai troppo impegnato a lavorare su un'integrazione continua server per automatizzare il noioso test-, & costruisci parti del processo di sviluppo (compresa la minificazione) e concentrati sulla parte divertente, scrivendo codice chiaramente comprensibile che fa grandi cose!

P.S. Se hai bisogno di familiarizzare con lo sviluppo di codice javascript all'avanguardia, dai uno sguardo al libro di John "Mr. jQuery" Resig su "Pro Javascript Techniques" subito dopo o insieme a quanto sopra.

    
risposta data 26.06.2012 - 03:15
fonte

Leggi altre domande sui tag