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
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/smartfishliu/archive/2013/03/30/2990247.html
總結
以上是生活随笔為你收集整理的APL平台对C++开发者的价值和作用的全部內容,希望文章能夠幫你解決所遇到的問題。