Skip to content
RubyLouvre edited this page May 9, 2012 · 2 revisions

什么叫大规模开发?回顾java这个最早实现工业化的语言就知了。语言特性越来越丰富,各种编程技术升华到哲学的程度,框架非常庞大,包罗万象, 但易于调试,易于堆砌代码(俗称集中箱式的开发)。

语言特性就不要期望过高,但我保证它能用到大量ECMA262v5添加的新API,还有对语言底层的BUG修复,这是lang_fix模块所做的事。 为了快速开发,工具函数是必不可少的。PHP兴起,与其大量的函数脱不离关系,但一个个像游兵散勇那样也不放便管理,于是我把它们分辖于$.Array, $.Object, $.String, $.Number之上, 最常用的直接挂在命名空间上。但JS流行链式操作,因此我写了个语言链对象,模仿underscore.js,把它们“链”起来了。这是lang.js模块所做的事。

大规模开发,当然少不了命名空间,模块化,动态加载,细腻的DEBUG跟踪,这是种子模块mass所做的事。当然作为种子模块,这微内核要恰到好处,不能过大,也不能过简。它还是包含了与模块加载息息相关的domReady, 要实现domReady当然还事件监听,因此它自带了两个很小的事件绑定与卸载方法。还有最常用的类型判定方法,用于if语句内进行高速判定oneObject生成器,实现原生迭代的$.rword正则, 用于处理类数组对象的slice方法,还有,为了支持让IE678辨识出HTML5新元素不得不添加的语句,未了,还有多版本共存与多库共存。这微内核还是非常拥挤的。

大规模开发,意味着我们没有后顾之忧,因此放弃不靠谱的浏览器侦测,使用先进的特征嗅探技术。这是从jQuery偷来的模块——support.js。不过针对本框架,裁减了许多特性了,也添加了几个新检测。

说起大规模开发,人们很易联想起OO。这是与时下炒得最热的HTML5一样,总是从来贴粘的标签。仿佛有了它,身价就高不了。当然它的确非常有用,尤其是做UI开发时。 因此class模块就是专干这事,这是一个类工厂,由于制造各种类的。

数据缓存模块data.js,它所做的事就是保存一些临时的变量,允许各模块各方法互相利用。正是有了它,事件系统,CSS3 transform 2D在IE678的模拟才这么顺利。

未完待续……

Clone this wiki locally