zoukankan      html  css  js  c++  java
  • APL平台对C++开发者的价值和作用

    APL平台对C++开发者的价值和作用

     前两天我请二哥对博客提意见,  他讲了网站上APL平台太大, 不太容易让人真正搞懂, 并且缺乏具体的点抓住开发者.

    我根据这个意见, 计划写系列文章, 阐述各个层次的开发者如何利用APL平台, 以使大家更了解APL平台.

       作者设计APL平台主要动机是为C++程序员找到一种正确的C++做前端产品的发展方向( 在保持C++的高效执行效率的情况, 而又能够满足前端应用变化无常的UI需求,

    并且做到快速高效的开发响应,  克服C++在这部分的缺陷.  ), 因此作者讲解的第一篇文章主题是:  C++开发者 利用APL平台能有什么价值和作用.  

      好, 不讲废话, 直接上菜( 作者为 C++程序员写app设计的架构  ), 如下图:

          

      架构解释:

       传统的C++程序 app 包容的只有 硬编码(hard code)页面支持,  当页面展示需求要变化的时候(通常是你把产品做的七七八八, 客户才会真正告诉你他UI有什么需求),  开发工程师需要较长时间处理这个问题,

     并发布新的exe,dll, 安装包之类, 以使产品升级.  如果采用APL平台, APL平台提供了两种 (动态页面+app数据层)的处理技术:

       1. SCADA(组态)页面:

          SCADA是电力监控产品的术语,  这种技术在 监控行业, 自动控制软件等等, 都是类似的做法,  通常叫组态也行.

          这种技术也是:  页面描述 + 脚本事件处理,  跟HTML的原理也差不多,  不过SCADA应用到 要求比较特殊的行业中(特别是实时系统).

           当然作者的SCADA页面 并不参照任何行业的规范, 是基于APL平台下, 用 apl脚本描述和处理事件的 一种组态技术.

      2.  Web页面 + javscript的APL接口 页面:

          作者在 javascript中对接了 APL接口, 以使 Web页面摆脱 B/S应用框架 的束缚,  而使Web页面获得了app中数据层的 API调用的处理能力.  如果我们把这个功能放大一点,

        假定作者精力无限旺盛, 在APL平台把OS层次的接口全部封装进去,  那么Web的前端开发者, 完全可以开发出 架构在APL平台之上的 WebOS那样的东西.

         那C++程序员用 APL平台能有什么优势呢?

         1. 可以保持 hard code的页面.

         2. 需要把数据层对接到 APL平台,  然后可以用 SCADA页面 或者 Web页面 完成 动态需求页面开发.

            可以向Web那样直接在 服务端发布或者更新页面.

        总之, 一句话,  APL平台为 C++产品 获得 快速和动态的前端页面开发能力 提供了比较容易改造的兼容性解决方案.  

         再分析清晰一些,  以下具体讲解 哪些情况下 同志们无需考虑选择APL平台 和 哪些情况下同志们可以考虑选择APL平台.

       以下情况, 出现任何一条都无需考虑 选择APL平台, 而应考虑选择其他方案:

            1.  你的应用有非常强的 跨OS需求.

                假定你的应用 需要跨越window, linux, 各个手机OS...

                我想需要使用 java或者纯Web技术才行, 或者你得准备多个平台的开发人员才行.  

                目前APL平台还仅仅支持window平台, 虽然作者的设计上也是希望APL平台能跨越各个OS, 跨越PC和手机,  无奈作者能力有限,  有想法没计划.

            2.  你不是C++的开发者, 或者你觉得用其他更高级的语言开发能替代你现在C++产品.    

                APL平台是为 C++ 和 apl脚本语言 无缝结合 而设计的.  

             3. 你的产品 完全没有动态页面的需求.

                你现在的产品UI已经完全达到和满足用户需求, 无需改进.

                那这种情况下APL平台已经帮不到你.

        以下情况, 同志们可以考虑选择APL平台:

             1.  你现在的产品是项目方式在 复制和变异,  你在项目复制时候, 因为需求变动, 花费在UI调整上的成本太高.

                 这种情况下,  比较适合采用动态页面技术.  APL平台的 SCADA技术 或者 支持apl接口的 Web页面, 将会降低你在UI调整上的开发成本和时间.

             2.   用户在 UI上面 总是需求在变动 或者 不断有新的页面, 你现在hard code的方式完全跟不上用户的需求.

                 这种情况下,  只有动态页面技术 才能在时间和效率上到达要求.

             3.  你的C++产品越来越庞大, UI工作越来越多,  你已感觉控制它越来越困难,  而你新招聘的程序员很难掌握这个庞大的产品开发.

                你正在考虑是否 开始采用别的更高级的语言来替换它, 而又在犹豫整个转换的风险.

                 APL平台是 一种 基于抽象数据,  把C++的代码和模块从紧密偶合变成松散偶合的设计思想.

                 同时又把 开发工作分为了 C++核心开发工作 和 动态页面工作( 描述性和脚本性 开发工作. )

                 这种情况下大幅降低了你对产品外围的 人员技能要求.

                 我觉得把 庞大的C++产品 转为支持 APL平台方式的产品, 比转为其他语言风险低.

             好了,  在文章的结束, 附上基于APL平台的实例(  深思(DeepThink)浏览器) 的系列画面, 以使大家更多感受这个平台能做到什么.  

    1.  深思(DeepThink)浏览器中 用 SCADA画面实现的 本地音乐播放的应用:

     2.  深思(DeepThink)浏览器中 用 SCADA画面实现的 桌面应用管理:

    3.  深思(DeepThink)浏览器中 用 SCADA画面实现的 人机对弈的 小游戏:

    4.  深思(DeepThink)浏览器中 用 SCADA画面实现的 华容道 小游戏:

      

     

    5.  深思(DeepThink)浏览器中 用 SCADA画面实现的 人机对弈的 五子棋游戏:

                  

    6.  本地搜索 ----  基于 APL接口的 Web页面:

      

             目前APL(抽象编程语言)平台还在alpha开发阶段,  作者希望更多的开发人员能够了解和喜欢APL(抽象编程语言)平台,  如果你想了解更多APL(抽象编程语言)平台的信息和体验一下

    APL(抽象编程语言)平台中的开发和应用, 请在此文章后留下您的电邮, 作者会把此包发给您, 多谢!

              更多APL(抽象编程语言)平台内容, 请参见作者博客:  

      smartfish_liu - 博客园
      http://www.cnblogs.com/smartfishliu/

    paul

    2013-3-30

      

         

         

        

     
     
    分类: APL
  • 相关阅读:
    iOS渠道分包2种模式之包内注入文件分包(iOS13验证签名问题)
    iOS13 新特性简介
    OC 字典dictionaryWithObjectsAndKeys报错
    博客迁移指南
    block内部实现原理(三)
    block内部实现原理(二)
    block内部实现原理(一)
    iOS:记一次Mac OS X 测试版(OS X EL Capitan) APP发布过程
    iOS: El Capitan Beta 下 Xcode6.4 不显示Scheme菜单
    iOS: UIWebView 中不加载图片(即浏览器常见的无图模式)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2990254.html
Copyright © 2011-2022 走看看