使用Javascript进行软件工程原理

Sco*_*bie 6 javascript software-quality

我们一直在努力提高我们应用技能来解决问题的能力.软件工程原理极大地帮助我编写更高质量的代码.这包括测试,模块化,在适当的地方使用OO等.

这是我在JS中实现模块化的一个例子.也许这是实现这一目标的一种不好的方式,但它可以作为我的意思的一个例子,并包含一些自己的问题.

framework.js

Framework = {
    CurrentState : {
        IsConfigurationLoaded : false,
        IsCurrentConfigurationValid : false,
        Configuration : undefined  //undefined .. good? bad? undefined?
    },
    Event : {
        //event lib
    }, 
    //you get the idea
}
Run Code Online (Sandbox Code Playgroud)

题:

您在哪些方面应用软件工程原理来提高JS的可读性,可维护性和其他质量属性?

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

我曾经写过一个简单的JS单元测试框架,它有简单的断言和一个带有lambda的测试助手方法.您对单元测试javascript有何看法?

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

JS主要用于浏览器或网站.这会减少/消除某些顾虑吗?

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

使用undefined和/或null?它应该被禁止吗?

使用try/catch?建议?

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

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

mki*_*ind 1

在大型项目中,我倾向于在模型文件、控制文件和视图文件之间有所不同([mvc-pattern][1])。

模型文件包含有关数据的所有内容,尤其是我的类(OOP)。模型文件的示例可以是:

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
   }
}
Run Code Online (Sandbox Code Playgroud)

视图文件包含与布局和视图有关的所有内容,控制文件包含与数据处理有关的内容。控制文件使用模型文件中声明的类并与其一起工作。因此视图只需要包含控制文件并调用布局所需的函数。

但总的来说,一概而论是完全不同的。我喜欢 oo 模式,并且尝试使用 is,如果它有意义的话。但我只有 iPhone 开发的经验,所以我无法谈论有关 Web 开发的内容。

  [1]: http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller
Run Code Online (Sandbox Code Playgroud)