2010-09-15 23 views
6

Cerchiamo sempre di migliorare la nostra capacità di applicare le nostre competenze per risolvere un problema. I principi di ingegneria del software hanno notevolmente aiutato la mia capacità di scrivere codice di qualità superiore. Questo include test, modularizzazione, utilizzando OO se del caso, eccPrincipi di ingegneria del software con Javascript

Ecco un esempio di come ho raggiunto una certa modularizzazione nel mio JS. Forse è un brutto modo per raggiungere questo obiettivo, ma serve da esempio di ciò che intendo e contiene alcune domande a sé stanti.

framework.js

Framework = { 
    CurrentState : { 
     IsConfigurationLoaded : false, 
     IsCurrentConfigurationValid : false, 
     Configuration : undefined //undefined .. good? bad? undefined? 
    }, 
    Event : { 
     //event lib 
    }, 
    //you get the idea 
} 

Domanda:

In che modo si applica software engineering principi per migliorare la leggibilità, manutenibilità, e altri attributi di qualità del vostro JS?

Altro (più specifici) Domande sulle aiuto nel rispondere:

una volta avevo scritto un semplice quadro di unit testing JS, che aveva semplice afferma e un metodo di test aiutante di prendere un lambda. Quali sono le tue opinioni su unit test javascript?

Quanto è importante definire il confine tra il codice e il quadro?

JS viene utilizzato principalmente in un browser o in un sito Web. Questo riduce/annulla certe preoccupazioni?

Suggerite l'utilizzo di Classi e principi OO?

Uso di indefinito e/o nullo? Dovrebbe essere proibito?

Utilizzo di try/catch? Suggeriti?

Quando vai da JSON alle lezioni? Usi metodi Util che operano sui dati?

Utilizzo del prototipo? Suggeriti? Qual è un buon caso in cui non lo useresti?

risposta

1

in gran progetto i tendono a variare da modello-, di comando e visualizzare i file ([mvc-modello] [1]).

il modello-file contiene tutto ciò che riguarda i dati in particolare la mia classe (OOP). un esempio per un modello-file potrebbe essere:

function myClass(){ 
    //private variable 
    var variable=5; 

    //public variable  
    this.newVariable = 10; 

    function myFunction() { 
     //do some stuff 
     alert("my function"); 
    }  

    //public stuff 
    return { 
     myPublicFunction: myFunction 
    } 
} 

la vista-file contiene tutto ciò che riguarda il layout e vista e la-file di controllo è riempito con la roba relativa ai dati-gestione. control-file usa la classe dichiarata nel file di modello e funziona con essa. quindi la vista deve solo includere il file di controllo e chiamare le funzioni necessarie per il layout.

ma in generale è abbastanza diverso da generalizzare. mi piace l'oo-pattern e il trie da usare è, se ha senso. ma ho solo esperienza con lo sviluppo di iPhone, quindi non sono in grado di dire qualcosa riguardo a web dev.

[1]: http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller 
Problemi correlati