此次開發(fā)在***會議項目之后進行的優(yōu)化。主要內(nèi)容:
1、 對在這次開發(fā)中發(fā)現(xiàn)的問題進行解決。
2、 對流程引擎進行重構。
3、 擴展部分流程引擎的功能。
4、 進行結構調(diào)整。
5、 單元測試。測試驅動。
調(diào)整總體結構
目前結構主要的問題在于,流程內(nèi)核、應用服務器的服務,業(yè)務邏輯都一個動態(tài)庫中,代碼雜糅在一起,不利于后面的維護,重用,以及開發(fā)。
現(xiàn)在要做的事情是把它分成三層:
1、 Flow Engine Core 流程內(nèi)核層
主要的功能是建立一個流程模型,包括:
1) 解析腳本,生成流程。
2) 實現(xiàn)流程的運轉。
3) 提供一個擴展機制,以便擴展出多種服務,多種對象。
把流程內(nèi)核單獨剝離出來,形成一個動態(tài)鏈接庫。這樣,相當于建立了一個流程模型,不單IVR可以使用,其他的流程處理也可以使用。
這是第一層。
2、 AS Service 應用服務器服務層
應用服務器服務層通過流程內(nèi)核層的服務擴展機制,建立應用服務器相關服務實體,比如:呼叫,拆線,放音,收號等。
還包括特定的對象,如用戶對象,會議對象。但是記錄用戶對象和會議對象的對應關系。這個對象關系在業(yè)務邏輯層進行記錄。
這一層可能對業(yè)務邏輯層封裝一些復合服務,比如追呼,強插,強拆等。
3、 Business Logic 業(yè)務邏輯層
業(yè)務邏輯層的主要功能是處理不同業(yè)務的邏輯。以電話會議業(yè)務為例:
這一層通過電話號碼和會議號和和應用服務器服務層進行交互,保存用戶和會議的對應關系,以及會議屬性(是否錄音,追呼,),記錄會場信息,和頁面進行交互等。
這里也可以擴展一些會議業(yè)務所特有的服務,比如,追呼,三個號碼,輪呼等。
node,執(zhí)行環(huán)境,service三者的關系目前不是很好。這里也要調(diào)整。
擴展流程功能
擴展的功能包括:
1) 實現(xiàn)流程的“節(jié)外生枝”——即在主流程里調(diào)用一個子流程。
2) 同步分裂,與匯聚流程
3) 同步分裂,或匯聚流程
代碼重構
對代碼進行重構。有些接口設計比較差,這里進行一下優(yōu)化。在優(yōu)化之前,倒是可以學習一下《設計模式》以及《重構》,順便溫習一下《代碼大全》,借鑒一些好的思路。
測試驅動開發(fā)
嘗試測試驅動開發(fā),為流程引擎代碼構建一個可靠的測試環(huán)境。這里使用Google Test單元測試框架。
解決這次開發(fā)中的技術債務
將這次開發(fā)中一些臨時的方案用新的方案來進行代替。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
