共计 47 篇文章

Qomolangma实现篇(八):Qomo中的AOP框架

一、Qomolangma中的AOP AOP(面向切面编程)有没有必要在JavaScript中实现,一直以来是个问题。滥用AOP的特性,将导致系统效率下降、性能不稳定等后果。因此在展开下面的讨论之前,我需要先提醒Qomoer:尽管我们拥有了强大的AOP框架,但如果你不足够了解它,那么还是慎用之。 前面在讲述Interface的时候提到,Qomo是鉴于AOP的需要,而为之提供了强大的Interface机制。但这并不是说用户需要定义很多接口,才能使用AOP。——Interface是在Qomo实现AOP中的“定制切面”时使用到的关键技术,而不是用户使用AOP时所必须的技术。 Qomo的AOP框架依赖于Qomo中提供的如下特性: 接口机制:Interface. ...

Qomolangma实现篇(七):Qomo的接口机制

一、Qomolangma中的接口(Interface.js) 在做AOP(面向切面编程)系统之前,我一直在想:有什么必要在JavaScript中做“接口(Interface)”的机制。——当然,这也说明,你可能需要通过阅读迟些提供的、关于AOP框架的文档,才能理解如何使用Qomo中强大的接口机制。^.^ 接口是现代软件工程中的一种常用工具,它的出现使设计人员更多的关注于功能的“对外表现”,而非“内部实现”。在软件模型设计中,类图通常用于描述设计的细部,而接口则更常用于描述模块、层次间的交互关系。 ...

Qomo OpenProject beta1 发布!

Qomo离上一次发布FT4已经过去整整一个月了。这一段时间中,因为我个人的缘故,未能组织好Qomo的团队,导致UI组和DB组未能正常展开工作。因此截止beta 1发布,以上两个组仍未能释出代码。 一个最重要的原因,是因为Qomo目前没有一个好的UI和DB框架。以前在WEUI中使用过的UI和DB Components代码并不适用于新的架构和设计,因此只能供参考。 此外,兼容组的Zhe设计了新的兼容框架,基本上已经完成了代码。但测试工作还未结束,因此暂时只作为Qomo项目团队内部的一个测试版本,仍未能放在目前的beta 1中。 1、关于UI与DB组件包 本次,公开发布的beta 1仍不会附带UI和DB代码。但是我稍后会在这个blog中发布一个Qomo. ...

Qomolangma实现篇(六):Qomo的OOP框架的实现技术

注:本文讲述的是FT4的一个修正版本中的OOP实现,而非原始发布版本。 一、Qomolangma中类继承的基本架构 Qomo在Object.js中,通过实现Class(),封装了“类继承”体系的绝大部分细节。如果你仅是要使用Qomo,那么你只需要通过“实现篇(五)”去了解一些基本语法就可以了。但是如果你想了解一些更细节的内容,或者你想让自己具有控制Qomo框架的能力,那么你应该继续将这篇技术文档读下去。 ——尽管,这并不如你想象地那样容易。 Qomo的加入,使JavaScript具有了完整的“类继承”体系。类继承的出现, ...

Qomolangma实现篇(五):Qomo的OOP的语法和类继承体系

一、Qomolangma中完整的OOP支持:Object.js Qomo自Field Test4开始提供Object.js,这个单元用于在Qomo中支持完整的OOP特性。通过Object.js,Qomo中的JavaScript由原来的“原型继承”转变成了“类继承”。而且,这个转变对于开发人员来说,几乎是完全透明的。 通过Object.js,Qomo支持了如下的面向对象特性: 特性(Attribute)及读写器(getter/setter) 类注册与类继承( ...

Qomo OpenProject Field Test 4发布!

Qomo 项目的Field Test 4将是这个项目的一个重要的里程碑! Qomo的FT4终于公开了对OOP提供支持的Object.js,以及大量相关的示例。这包括: RTL/Object.js : Qomo's OOP Core DOCUMENTs/Qomolangma实现篇(五).txt DOCUMENTs/TestCase/BaseObjectDemo.html DOCUMENTs/TestCase/BaseObjectDemo2.html ...

Qomolangma实现篇(四):基本特性增强与多投事件系统

一、Qomolangma对JS基本特性的增强 为了实现更为丰富的OOP特性,Qomo增强了JavaScript的一些基础特性。这主要表现在: 对JS基本类型系统(的方法)的增强 支持多投事件 这其中,对基本类型系统的增强,将严格恪守一条原则:不修改Object()对象原型。 除了array.indexOf()、array.remove()、string.trim() 等常见的增强之外,Qomo有几项特性是与其它可能(可能)不一致的。这几项内容随后列一专题来讲述: Array. ...

Qomolangma实现篇(三):兼容层设计

一、Qomolangma的兼容层设计 自Qomo Field Test3开始,系统从内核一层开始提供跨(浏览器)平台兼容的能力。Qomo试图在不同的浏览器上提供相同(或类同)的框架层特性。 Qomo 的兼容层设计跟常见的其它系统并不一致。基于“Qomo是可拆卸可组装的”这样一个基本思想,Qomo实现的兼容层完全可以“象插件一样增强,或者卸载”。 与一般的系统不同,Qomo基本上是基于IE 6的JScript语言特性来提供的兼容层支撑。也就是说,如果你向Qomo的兼容层添加一个插件,那么你应该致力于“使第三方浏览器表现得跟IE6一致” ...

Qomo OpenProject Field Test 3发布!

Qomo 项目的Field Test 3在团队的努力下终于发布了。 事实上,仅这个发布包中的代码,完成于~~大概一周之前。但是我一直没有时间完成技术介绍方面的文档,所以就一直没有发布。很抱歉。 FT3主要的工作包括: 重写了system.js, NamedSystem.js, Namespace.js全部的框架代码,层次结构更加清晰 完成了完整的兼容层框架、代码。系统可以在Mozilla, safari和IE5.0以上版本上运行 实现了完整的、透明的多投事件系统 ...

Qomolangma实现篇(二):命名空间和别名子系统的实现

一、NamedSystem 模块概要 NamedSystem 是Qomo的可选载入模块。这个模块主要实现三个功能: 对$import()在路径识别上的增强 Namespace 子系统的装载 Alias 子系统的装载 // TODO: NamedSystem.js是firefox兼容的。 二、NamedSystem 模块的构成与载入 命名系统分成上述的三个部分,但它们的重要性并不相同。 $import()为了对路径识别进行增强,加入了一个标准的JavaScript对象:Url()。此后通过一个匿名函数的执行来实现对$ ...

Qomolangma实现篇(一):内核载入模块system.js的实现

一、system.js 模块概要 system.js是Qomo的第一个载入模块。这个模块主要实现三个功能: 基本的$debug()函数 基本的$import()函数 内核子系统的装载 system.js是firefox兼容的。 二、内核子系统的构成与载入 在Qomo中,所谓内核是指由直接在system.js中载入的模块构成的系统功能层。system.js实现了$import()函数,并通过它装载以下模块: ...

Qomo OpenProject Field Test 1发布!

我终于从原公司得到有关公司WEUI项目相关内容的充分授权了。因此从今天开始我将陆续整理、公开Qomo的代码。——而不再是象原来那样“只能公开技术文档”。 Qomo项目的绝大多数代码其实已经完成并能投入商用。——因为它本来就是在WEUI这个商用的RWC平台中的代码。但我并不打算一下子全部**“扔出来”**。因为“提供代码”并不是真正的目的,真正的、我源初性的目的是探求JavaScript在富客户端上开发的极致,并且能够在理论、实践、商用等方面为JavaScript开发界做一些工作。——看起来目标有点大的说,哈哈。 所以如果仅仅是“扔一套代码出来”并没有什么意义。而我因此打算在每次提供代码之前撰文,详细分析这套代码中的技术实现。因此Qomo V1. ...

关于Qomo于ajax的异同~

现在ajax实现太过火了,什么都向上面靠。其实早在2000前以前,WEB开发人员就已经在用Frame/Frameset来实现远程数据的获取。后来IE成为事实上的B端标准之后,IFrame就成了做远程数据获取的“标准手段”了。——例如M$就用这种方法来做MSDN网站左侧的那个“巨大的树”。 在ajax出现之前,这一系列的技术被称为“RPC(Remote Procedure Call)”,象XMLRPC、HTTPRPC以及PHPRPC这些开源项目都是有的。PRC的一个问题,是必须实现一个S端,与WEB端的代码约定一个描述过程名(ProcedureName)和参数表的细节的接口。这其中, ...

关于Qomo OpenProject的进度(2006.01.04)

目前项目仍在初起阶段。许多事情是我一个人来做的,因此时间上实在不够用。 我目前的主要工作是撰写项目的相关文档和整理项目中的可公开代码。我需要从原有的WEUI项目中剥离出一些非商业的代码出来。——尽管这个工作不复杂,但涉及到原公司的授权问题。 由于是开源项目,因此我保证大家是可以得到完整代码、文档的。不过当前,我希望大家能关注已公开的文档部分,并尽可能积极的参与(这两天的e-mail没回,是因为我元旦期间在外地,不能上网)。 在“Qomo OpenProject中的一些关键词(1)(2)”这两部分公开之后,接下来计划撰写的文档是:  八、JavaScript面向对象的支持  九、 ...

从基础开始:Qomo OpenProject中的一些关键词(2)

七、Qomo OpenProject中的一些关键词(2) 接下来我们讲述一些在Rich Web Client中,而不仅是JavaScript中涉及到的一些关键词。我希望这对你理解Qomo OpenProject的设计,乃至整个B端开发的现状有帮助。 1. Rich Web Client 和 Rich Internet Application(RIA) 首先,RIA是Macromedia基于Flash在浏览器上的广泛应用而提出的一个“实现丰富的浏览器端应用”的框架。按照Macromedia的解释,RIA是符合Rich ...