【问题标题】:Software Engineering Principles with Javascript [closed]Javascript的软件工程原理[关闭]
【发布时间】:2010-09-15 13:55:42
【问题描述】:

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

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

framework.js

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

问题:

您以哪些方式应用software engineering 原则来提高您的 JS 的可读性、可维护性和其他质量属性?

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

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

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

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

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

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

try/catch 的用法?推荐?

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

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

【问题讨论】:

    标签: javascript software-quality


    【解决方案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
       }
    }
    

    视图文件包含与布局和视图有关的所有内容,而控制文件则包含与数据处理有关的内容。控制文件使用模型文件中声明的类并使用它。所以视图只需要包含控制文件并调用布局所需的函数。

    但总的来说,概括起来是完全不同的。我喜欢 oo 模式并尝试使用 is,如果它有意义的话。但我只有 iPhone 开发经验,所以我不能说有关 web 开发的内容。

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

    【讨论】:

      猜你喜欢
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2010-09-17
      • 2018-04-13
      相关资源
      最近更新 更多