2010-09-15 11 views
6

Nous essayons toujours d'améliorer notre capacité à appliquer nos compétences pour résoudre un problème. Les principes du génie logiciel ont grandement aidé ma capacité à écrire du code de meilleure qualité. Ceci inclut les tests, la modularisation, l'utilisation de OO le cas échéant, etc.Principes de génie logiciel avec Javascript

Voici un exemple de réalisation de modularisation dans mon JS. Peut-être que c'est un mauvais moyen d'y parvenir, mais il sert d'exemple de ce que je veux dire et contient quelques questions qui lui sont propres.

framework.js

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

Question:

De quelles façons appliquez-vous software engineering principes pour améliorer la lisibilité, maintenabilité, et d'autres attributs de qualité de votre JS?

Autres connexes (plus spécifiques) Questions pour aider à répondre à:

J'avais une fois écrit une simple unité JS cadre de tests qui avaient simples et une méthode affirme d'aide de test prenant un lambda. Quelles sont vos réflexions sur les tests unitaires javascript?

Quelle est l'importance de définir la limite entre votre code et votre framework? JS est principalement utilisé dans un navigateur ou dans un site Web. Est-ce que cela réduit/annule certaines préoccupations? Suggérez-vous l'utilisation des classes et des principes OO?

Utilisation de indéfini et/ou nul? Devrait-il être interdit?

Utilisation de try/catch? Suggéré?

Quand allez-vous de JSON en cours? Utilisez-vous les méthodes Util qui fonctionnent sur les données?

Utilisation du prototype? Suggéré? Quel est un bon cas où vous ne l'utiliseriez pas?

Répondre

1

Dans un grand projet, j'ai tendance à différer entre les fichiers model, control et view ([mvc-pattern] [1]).

le fichier-modèle contient tout ce qui concerne les données, en particulier ma classe (POO). un exemple pour un modèle de fichier pourrait être:

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 vue fichier contient tout ce qui concerne la mise en page et la vue et le fichier de contrôle est rempli de choses en ce qui concerne les données de manipulation. control-file utilise la classe déclarée dans le fichier-modèle et travaille avec. la vue doit donc uniquement inclure le fichier de contrôle et appeler les fonctions dont elle a besoin pour la mise en page.

mais en général c'est assez différent de généraliser. j'aime le oo-pattern et trie à utiliser est, si c'est logique. mais je n'ai qu'une expérience avec le développement de l'iPhone, donc je ne suis pas capable de dire quelque chose concernant le développement web.

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