• 从基础开始:Qomo OpenProject中的一些关键词


    ================================================================================
    Qomolangma penProject v0.9


    类别    :Rich Web Client
    关键词  :JS OOP,JS Framwork, Rich Web Client,RIA,Web Component,
              DOM,DTHML,CSS,JavaScript,JScript

    项目发起:aimingoo (aim@263.net)
    项目团队:aimingoo, leon(
    pfzhou@gmail.com)
    有贡献者:JingYu(
    zjy@cnpack.org)
    ================================================================================


    六、Qomo OpenProject中的一些关键词
    ~~~~~~~~~~~~~~~~~~

    1. JScript与JavaScript
    --------
    JavaScript是最早由网景公司在它的浏览器产品Netscape Navigator 2.0提出并实现的脚本
    语言。原名LiveScript。它最初出现的目的是给页面元素提供交互的能力,例如检查<FORM>表单
    中的输入值的有效性,并在必要时弹出一个提示对话框。

    JavaScript只是借用了当时开始红火的Java语言的名字,却实在与Sun的Java语言没什么关系。
    后来Microsoft在自己的Internet Explorer(IE)浏览器中发展自己的脚本引擎的时候,不得已
    地实现了当时已经成为事实标准的JavaScript脚本语言。事实上,如果不是Netscape的推动,
    可能现在只能在IE里面使用VBScript。

    后来,Netscape公司将JavaScript提交给ECMA制定为标准,称之为ECMAScript,编号ECMA-262。
    目前最新版为ECMA-262 3th Edition,通常简称为ECMAv3。

    但Microsoft并不满足于模仿或者重现Netscape的JavaScript,于是IE的开发团队扩展了Java
    Script的语法和语言特性,并由此形成了JScript。随着IE在浏览器市场上的成功,JScript已
    经成为JavaScript语言的事实标准,这也使得ECMAScript v3及以后的标准订制受到一定程度
    的影响。

    在IE中,尽管允许指定<SCRIPT>标签的Language属性来强制编译器解释时的语法检测,但IE默
    认语言却总是JScript的(当前浏览器所支持的)最新版本。

    下表给出JavaScript、JScript中的一个对照。更详细的资料可以查阅《JScript语言手册》。


    (表一) JavaScript 与 JScript各版本对照
    ----------------------------------------------------------------------------------
    Ver.  for NN      JScript  for IE/IIS in OS           JavaScript的主要特性
    ----------------------------------------------------------------------------------
    1.0   2.0         1.0      IE3早期版本
    1.1   3.0         2.0      IE3后期版本(WinNT4)        引入Array对象,消除大量错误
    1.2   4.0-4.05                                        引入Switch语句、RegExp等
    1.3   4.06-4.7x   3.0      IE 4.0,IIS 4.0,JSH 1.0   修正一些不兼容性,符合ECMAv1
                      5.0      IE 5.0(Win98 SE,WinMe)    (*JScript开始部分实现ECMAv3)
                      5.1      IE 5.01(Win2k)
                      5.5      IE 5.5(WinMe)
                      5.6      IE 6.0
    1.4   (服务器端)  (未实现)
    1.5   6.0         (未实现)                            引入了异常处理,符合ECMAv3
    ----------------------------------------------------------------------------------

    (表二) ECMAScript 各版本及其实现
    ----------------------------------------------------------------------------------
    Ver.     JavaScript    JScript     说明
    ----------------------------------------------------------------------------------
    ECMAv1   1.1           1.0, 2.0    ECMA-262 v1 基于 JavaScript 1.1.
             1.2                       JavaScript 1.2发布时, ECMA-262 v1 时仍未能完成。
             1.3, 1.4      3.0         完整实现ECMA-262 v1
    ECMAv2                             ECMA v1的维护版本,只添加了说明性描述。
    ECMAv3   (x)           5.0         部分实现ECMA-262 v3
             1.5           5.5         完整实现ECMA-262 v3
             (x)           5.6         在客户端与JScript5.5没有区别。
    ----------------------------------------------------------------------------------


    2. 面向对象
    --------
    (注:以下描述为非学术资料的)

    对象是一种数据结构。它封装了所描述事物的属性和行为信息,并且通过继承来描述了事物
    在现实(或执行环境中)的衍生关系。继承的另一层作用,是强化了信息的重用并为执行期逻
    辑提供了多态的特性。

    综上所述,一个面向对象的语言环境应当:
      1). 实现一个特定的“对象”这种数据结构
      2). 实现对象的继承性
      3). 在对象中实现信息的封装性
      4). 在编译器一级理解多态机制,并提供运行期的多态特性

    对于对象的上述特性,标准的学术资料总结为:继承性、封装性和多态性。

    此外,在强类型的语言环境(例如编译性语言)中,通常会在对象的基础上实现“类类型”。
    在这种情况下,“类”是类型描述(type),而“对象”是变量声明(var)。更面向机器一层
    的叙述是,“类”用于声明数据结构的布局;而“对象”则是在内存中按这种布局分配的
    数据块(实例)。

    一些强类型的语言会提供“类类型”来描述一个类的引用。这种情况下,“类”会具有在
    内存中的一个描述结构(struct)。这也意味着“只有提供运行期信息(RTTI)的语言”才能
    提供“类类型”这种语言特性。

    与面向对象相关的一些概念包括:
      - 属性(property)
      - 特性(attribute)
      - 读写器(getter/setter)
      - 方法(method)
      - 虚方法(virtual method)
      - 动态方法(dynamic method)
      - 纯虚方法/抽象方法(abstract method)
      - 事件(event)
      - 多投事件(mutilcast event)

    这些概念的具体含义请查阅相关资料。在Qomo OpenProject对OOP Core的实现过程中,将
    经常性地提及这些概念。你也会清晰的看到:如何来实现完整的OOP的各种语言特性。


    3. 面向对象与基于对象的语言
    --------
    一种提供了“对象”这种数据结构的语言,如果它不能完全实现面向对象的三种基本特
    性“继承、封装和多态”的语言,就被认为是“基于对象的语言”。相应的,完整实现
    了这三种特性的,被称为是“面向对象的语言”。

    JavaScript是一种基于对象的语言,我们通常说它具有“不完整的OOP特性”。Qomo
    OpenProject将在原生的JavaScript的基础上,实现更多的OOP特性,使得JavaScript
    能够方便地描述更庞大的框架,以及开发更复杂的Rich Web Client / Application.

    Qomo OpenProject对将从Delphi和C#中借用很多的OOP特性和语法特性。因此,如果你
    需要深入了解QomoJS中OOP Core的实现技术,那么你可能需要了解一些Delphi或C#的基
    础知识。

    如果你只需要将 Qomo 应用在你的系统中,那么你只需要记住一些语法、规则,并仔细
    阅读示例代码就可以了。^.^


    4. 面向对象的开发架构
    --------
    开发架构的描述,与语言本身的语法描述是两回事的。QomoJS中OOP Core中只在语法
    层面实现更多的OOP特性和支持能力。但OOP Core本身并不描述架构。

    在.NET中,底层的.NET Framework是一个开发架构,而FCL(Framework Component Library)
    则是一个组件库,这一点与Delphi的VCL(Visual Component Library)具有同一层次上的
    含义。

    但“架构”本身并不存在层次上的限制。也就说是说,可以有RTL这个层级上的Framework,
    也可以有Class Library这个层级上的Framework,同样,也可以有“组件库”这个层级上
    的架构。再往上,你可以发现“插件架构”,或“模块调度的架构”,更或者是象Ajax这
    样一些被称为架构的东西。

    所以在如果我们对FCL在组件库上的封装模式进行理解,那么也可以分析并得到它的架构
    模式。——在《Inside VCL (深入核心-VCL架构剖析)》一书中,李维就从这个角度分析
    了VCL的组件架构。

    QomoJS底层的丰富的OOP特性的支持,使得它有能力去描述和实现各种底层架构、组件
    架构和更加高(或低)层次的架构设计。在Qomo OpenProject中,我们将主要实现一个 Visual
    Component架构,并在上面发展Delphi VCL / .NET FCL的一个子集。

    此外,我们还会在底层架构上提供Template编程的支持,以及SOA的支持。这些属于底层架
    构的范畴,有时候他们也被作为语言特性来理解。——当然,这取决于你的视角。

    在Qomo OpenProject中非常轻松地实现一个Ajax的架构。不但如此,你还可以看到Qomo
    OpenProject用更加快捷的手段集成了Atlas(Microsoft's Ajax toolkit),以及ActiveUI's Template框架。随后还会有一个SOA框架被整合进来。

    这些框架及其实现,都可以在Qomo OpenProject中跑得很好。如果你希望将Qomo用于语言的研究
    而不是应用开发的话,你可以按照类此的方法一层层地实现下去。

    直到有一天,你发现一行代码就可以完成你所想的全部工作,而一台256位CPU的机器也跑
    不动这行程序的时候,我想你会反省:B端开发应当是一个轻量级的架构。

  • 相关阅读:
    初识spring boot
    javascript的console命令
    (转)三角函数计算,Cordic 算法入门
    (原+转)ROC曲线
    (转)(VS2013 )由于应用程序配置不正确,程序未能启动”--原因及解决方法
    (转)最小二乘法拟合圆公式推导及vc实现[r]
    (原)Eclipse中将JNI生成的so打包成jar的步骤
    (原)Eclipse的java中文件读写
    (原)Microsoft Source Reader的简单使用
    (转)android ndk 给结构体赋值的方法
  • 原文地址:https://www.cnblogs.com/encounter/p/2188730.html
Copyright © 2020-2023  润新知