6

我们一直在努力提高我们运用技能解决问题的能力。软件工程原则极大地帮助了我编写更高质量代码的能力。这包括测试、模块化、在适当的情况下使用 OO 等。

这是我如何在 JS 中实现一些模块化的示例。也许这是实现这一目标的坏方法,但它可以作为我的意思的一个例子,并且包含一些自己的问题。

框架.js

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

问题:

您以何种方式应用软件工程原则来提高 JS 的可读性、可维护性和其他质量属性?

其他有助于回答的相关(更具体)问题:

我曾经写过一个简单的 JS 单元测试框架,它有简单的断言和一个采用 lambda 的测试辅助方法。你对单元测试 javascript 有什么看法?

定义代码和框架之间的边界有多重要?

JS主要用于浏览器或网站。这会减少/消除某些担忧吗?

您是否建议使用类和 OO 原则?

使用未定义和/或空值?应该禁止吗?

尝试/捕获的用法?建议?

你什么时候从 JSON 转到类?您是否使用对数据进行操作的 Util 方法?

原型的用途?建议?什么是你不会使用它的好案例?

4

1 回答 1

1

in large project i tend to differ between model-, control- and view-files ([mvc-pattern][1]).

the model-file contains everything concerning data especially my class (OOP). an example for a model-file could be:

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
   }
}

the view-file contains everything concerning to the layout and view and the control-file is filled with the stuff concerning to data-handling. control-file uses the class declared in the model-file and works with it. so the view only needs to include the control-file and call the functions it needs for the layout.

but in general it's quite different to generalize. i like the oo-pattern and trie to use is, if it makes sense. but i have only experience with iPhone-development, so i am not able to say something concerning web dev.

  [1]: http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller
于 2010-09-15T15:12:55.453 回答