Javascript框架的设计原则

来源:互联网 发布:优化客户结构 编辑:程序博客网 时间:2024/06/05 11:01
        企业级Web应用越来越注重用户体验,因而出现大量的页面脚本,这是Ajax之类的技术成为主流的主要原因。从设计的角度而言,为了尽可能地复用代码,使代码看起来比较“优雅”,许多企业开始建立自己的Javascript框架。笔者所在的企业也是如此。
       最初,我们像许多企业一样,也面临两种选择:一是照搬国外流行的框架,如prototype、jquery、dwr之类。二是自己开发一套新的框架。不言而喻,第一种选择工作量小,见效快。缺点是这些框架过于臃肿,不太适应灵活的市场需要。第二种选择面临巨大的学习成本,javascrip是一种灵活的编程语言,各浏览器间有不小差异,资料分散。但一旦开发完成,将成为企业的财富。经过简单的权衡后,我们选择了后者。
       我们认为,企业Javascript框架在设计中应该遵循如下原则:
       一是解耦合。即尽可能地把业务逻辑(当然主要是页面显示逻辑)与基本技术单元分开,使代码中尽量少地出现重复的技术单元。
       如:
       Var a= [“a”,”b”,”c”,”d”];
       For(
var i=0,len=a.length;i<len;i++){
              ……
       }

      
如果这样写:
       [“a”,”b”,”c”,”d”].each(function(){……});
      
我们认为后者的在技术逻辑上进行了合理的抽象,使代码看起来更专注于业务逻辑,变得“优雅”了许多。
合理的解耦合依赖于设计者对业务和技术逻辑的合理抽象。“合理解耦合”与“过度设计”之间往往只有一步之遥。如何把握这个度,各个企业之间也许不太相同,有赖于设计者的权衡和把握。
二是尽可能“面向对象”。我们知道,Javascript是基于对象,而不是面向对象的。面向对象的设计思想和方法是如此诱人,使许多人都不由自主地希望对Javascript进行必要的改造,使之能够“继承”、“重载”,能够像真正的面向对象的语言一样工作。
许多Javascript大师都提出了自己的方案,应用于我们的项目时,都感觉存在这样和那样的缺陷。我们也提出了自己的一套方案,实现了“继承”、“重载”,子类可以用类似super的关键字调用父类的方法,父类也可以使用类似abstract的关键字定义“抽象”方法。
三是尽可能跨平台。这一点不言而喻。在这样一个浏览器厂商“三国演义”的时代,他们无法完全联合,咱们只好适应他们,多做些缝缝补补的工作了。
其他还有一些枝节问题,诸如DOM操作的跨Frame问题、代码效率的优化等,在具体的技术介绍中再详细说明。
遵循上述原则,我们开发了一个适应本公司需要的Javascript框架,包括:
1、jscriptFrame 基本框架。包括对Javascript基本类型的扩展、Class基类和几个有用的基本类。
2、xWindows 可拖拽窗口
3、debuger Javascript调试器
4、e1Editor Web编辑器。
5、e1Validator 验证器
6、ajax httpRequest类
7、fileUploader ajax文件上传管理器
8、colorSelector 颜色选取器
春节闲来无事,我将陆续把这些东西贴上来。由于Javascript资料的缺乏,其间我会把用到的一些javascritp和DOM知识予以简单的介绍,希望对大家有所帮助。
 
原创粉丝点击