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方法?
使用原型?建议?你不会使用它的好例子是什么?
在大型项目中,我倾向于在模型文件、控制文件和视图文件之间有所不同([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)
归档时间: |
|
查看次数: |
1399 次 |
最近记录: |