Come avere un codice base Javascript gestibile e gestibile [chiuso]

5

Sto iniziando un nuovo lavoro presto come sviluppatore di frontend. L'applicazione su cui avrei lavorato è Javascript al 100% sul lato client. tutti i ritorni del server sono una pagina di indice che carica tutti i file Javascript necessari all'app.

Ora ecco il problema:

L'intera applicazione è costruita attorno ad avere funzioni racchiuse in diversi spazi dei nomi. E da quello che vedo, una semplice funzione come il rendering dell'HTML di una pagina può essere realizzata con una chiamata a 2 o più funzioni in uno spazio dei nomi diverso ...

Il mio pensiero iniziale era "questa non sembra la soluzione perfetta" e posso solo immaginare un sacco di problemi con il mantenimento del codice e l'estensione lungo la linea.

Ora inizierò presto a lavorare per portare avanti il progetto e vorrei avere suggerimenti su buone pratiche in caso di scrittura e gestione di una quantità relativamente grande di codice javascript.

    
posta dade 25.09.2012 - 04:37
fonte

2 risposte

3

Questa è un'ottima domanda e un problema comune nell'avanzamento dell'architettura JavaScript.

Mi sembra che tu stia descrivendo la situazione di "accoppiamento stretto".

Una volta che le funzioni diventano oggettivate, la tendenza è quella di fare riferimento direttamente a questi meravigliosi oggetti, da un oggetto all'altro, anche attraverso lo spazio dei nomi. Perché è facile vero?

var Object1, Object2 = {};

Object1.somefunction = function(){
   //Tight Coupling!!
    Object2.functionCall();
}

È facile, ma questi riferimenti apparentemente innocenti si uniscono, per renderti triste quando devi rimuovere o sostituire gli oggetti. Ciò accade molto in JavaScript, quindi la comprensione dell'accoppiamento stretto è la chiave per rendere un codice JS manutenibile.

Ecco alcuni altri pensieri:

1 - Se i tuoi oggetti non stanno già comunicando da - innescando e ascoltando gli eventi; dovrebbero essere. Questa è la soluzione ai riferimenti difficili.

2 - Design Patterns. Ci sono molte sfide che sono già state risolte là fuori, le soluzioni riutilizzabili standardizzate - sono modelli di design.

Capire dove sono i modelli aiuta a concentrarsi su quali soluzioni possono avere senso. Un modello per la comunicazione tra oggetti è denominato Publisher / Subscriber o PubSub.

3 - Queste cose aiutano con la manutenibilità: MVC con un router, Modelli - associazione dati, AJAX - attraverso oggetti Proxy o Delegati.

4 - Cerca framework e librerie che risolvano i problemi del browser multiplo. Non reinventare le ruote di cui non hai bisogno di saperne di più. A seconda del tuo ambiente, alcuni framework potrebbero diventare delle scelte ovvie.

5 - Pensa a miglioramenti e ottimizzazioni come sistemi di costruzione, minification, linting, tdd, ecc.

6 - Inoltre, il più importante di tutti: caricatori di moduli. Dai un'occhiata a Require.js È un modo molto carino per spezzare JS in moduli e poi caricarli tutti in modo ottimizzato.

Spero che ti aiuti.

    
risposta data 06.10.2012 - 10:10
fonte
2

Consiglierei di esaminare la gestione e la compressione dei moduli JavaScript, anche denominata Steal JS che fa parte del ottimo framework JavaScript MVC . Questo potrebbe essere generalmente interessante per le applicazioni JS più grandi. Può caricare i file del modulo in modo dinamico durante lo sviluppo e per la produzione è possibile creare un file JavaScript compresso (può anche fare CSS).

Un'altra alternativa per cercare è RequireJS . tuttavia, non l'ho esplorato a fondo. tieni a mente questa opzione.

    
risposta data 25.09.2012 - 05:42
fonte

Leggi altre domande sui tag