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

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