共计 35 篇文章

Qomo的进展及相关说明~

关心Qomo项目的朋友可能注意到,在beta1之后,Qomo项目已经有近三个月没有更新了。其实这并不是项目组没有进一步的工作,而是陷于一些细节处的处理而延长了发布时间。 目前Qomo已经完成了UI框架的基本设计和框架层(主干)代码。在Qomo的RTL部分加入了Templet系统,在Debug部分加入了Profiler和Debugger,以及比较精巧的异常和断言处理机制的封装。公共代码库(Common)加入了Pool&Machine机制、timer&step机制等相关的应用工具库。UI组件库中也有一些代码加入。 此外,Zhe开始封装新的JS和DOM兼容层。这方面的工作已经得已展开。但是,基于Qomo的应用开发、UI组件库的开发处于停滞不前的状态。 ...

Qomo OpenProject beta1 精彩图集~

:) 好象CSDN Blogs里头发图片有问题,因此只能传到别的地方。这里转过来大家看看。 一、Qomo里的profiler显示结果 (运行:/Framework/Debug/TestCase/T_profiler.html ) 二、Qomo里的继承树显示结果 (运行:/Components/QomoHierarchyPoster.html ) 三、Qomo中对AOP的理解 (参考:/Framework/DOCUMENTs/TestCase/AdvObjectDemo5. ...

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项目中有很多人给我mail,说自己是新手,没有多少经验,不知道能不能加入Qomo。 关于这个问题,首先给个答案,只要愿意参与开源项目,即使是不会写Code,也能够在项目中找到自己的位置。Qomo亦然。我不会拒绝任何人加入Qomo的申请,没有回mail并不表明你被否决了,只因为(目前)项目还没有正式展开,因此也没有项目角色的分派。 之所以提到这个问题,是因为今天在CCF里看到另一个开源项目(shellweb)的负责人alexe写了一篇给新手的贴子,觉得他对这个问题的解释能够让新手们在开源项目中找到一条自己的道路: 以下(转贴自CCF) 看到有很多人问关于初学者的问题,在这里就忍不住要解释一下。 其实每个开源项目对于你所拥有的能力都没有任何要求, ...