2010-09-15 7 views
6

Siempre intentamos mejorar nuestra capacidad de aplicar nuestras habilidades para resolver un problema. Los principios de la ingeniería del software han ayudado significativamente a mi capacidad para escribir código de mayor calidad. Esto incluye pruebas, modularización, uso de OO cuando corresponda, etc.Principios de ingeniería de software con Javascript

Aquí hay un ejemplo de cómo logré cierta modularización en mi JS. Tal vez es una mala forma de lograrlo, pero sirve como un ejemplo de lo que quiero decir y contiene algunas preguntas propias.

framework.js

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

Pregunta:

¿De qué manera se aplica software engineering principios para mejorar la legibilidad, facilidad de mantenimiento, y otros atributos de calidad de su JS?

Otras preguntas relacionadas (más específicos) para ayudar a la hora de responder:

vez que había escrito un simple marco de pruebas de unidad de JS, que tenían sencilla y afirma un método de ayuda para tomar exámenes lambda. ¿Cuáles son sus pensamientos sobre pruebas unitarias javascript?

¿Qué tan importante es definir el límite entre su código y el marco?

JS se utiliza principalmente en un navegador o en un sitio web. ¿Esto reduce/anula ciertas preocupaciones?

¿Sugiere el uso de las clases y los principios OO?

¿Uso de indefinido y/o nulo? ¿Debería estar prohibido?

Uso de try/catch? ¿Sugirió?

¿Cuándo pasas de JSON a clases? ¿Usas métodos Util que operan con los datos?

¿Uso del prototipo? ¿Sugirió? ¿Cuál es un buen caso donde no lo usarías?

Respuesta

1

en proyectos grandes, tiendo a diferir entre modelos, controles y archivos de vista ([mvc-pattern] [1]).

el archivo de modelo contiene todo lo relativo a los datos, especialmente mi clase (OOP). un ejemplo de un modelo de archivo puede ser:

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-archivo contiene todo lo que concierne a la distribución y vistas y el control de archivos se llena con el material acerca de manejo de datos. control-file usa la clase declarada en el archivo modelo y trabaja con ella. por lo que la vista solo necesita incluir el archivo de control y llamar a las funciones que necesita para el diseño.

pero en general es bastante diferente generalizar. Me gusta el oo-pattern y trie usar es, si tiene sentido. pero solo tengo experiencia con el desarrollo de iPhone, así que no puedo decir algo sobre el desarrollo web.

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