隨著 LCDP(低代碼開發(fā)平臺) 不斷被公眾認知,規(guī)模也在日益擴大,正在不斷地驚醒著每個開發(fā)者,變革才是出路。由此我們簡單帶出我們今天要談的WorkFlow工作流引擎。
WorkFlow工作流引擎目前是以BPMN和Active工作流為兩大陣營為主,源代碼以:Java、net為主,而PHP幾乎沒有工作流引擎(這就很尷尬了)。
說完大體情況,我們開始進入正文:
什么是工作流引擎(Workflow Engine )
開發(fā)一個系統(tǒng),最關鍵的部分不是系統(tǒng)的界面,也不是和數(shù)據(jù)庫之間的信息交換,而是如何根據(jù)業(yè)務邏輯開發(fā)出符合實際需要的程序邏輯并確保其穩(wěn)定性、易維護性(模塊化和結構化)和彈性(容易根據(jù)實際業(yè)務邏輯的變化作出程序上的變動,例如決策權的改變、組織結構的變動和由于業(yè)務方向的變化產(chǎn)生的全新業(yè)務邏輯等等)。 Workflow 引擎解決的就是這個問題:如果應用程序缺乏強大的邏輯層,勢必變得容易出錯。
就好比一輛汽車,外表做得再漂亮,如果發(fā)動機有問題就只是一個擺設。應用系統(tǒng)的彈性就好比引擎轉速方面的性能,加速到100 公里需要1 個小時(業(yè)務流程發(fā)生變動需要進行半年的程序修改)還能叫好車嗎?引擎動不動就熄火(程序因為邏輯的問題陷入死循環(huán))的車還敢開嗎?(來源于百度百科)
為什么要用工作流引擎?
為了解釋這個問題,我們來舉個例子:
應用場景: 張三工程師正在研發(fā)一套OA、ERP等企業(yè)信息管理平臺
客戶需求: 有個物資系統(tǒng),客戶希望這么做,A填寫申請表——B部門經(jīng)理審核——C物資管理部確認——D張三領用物資
張三工程師: 立刻開始了業(yè)務需求調研,分析,總結。然后開始寫代碼了。業(yè)務表單很簡單(這里我們就忽略了)
審批設計:-1 退回修改 0 保存編輯 1部門經(jīng)理審核 2 物資部門確認 is_use 是否領用
根據(jù)設計:寫了如下代碼:
public function check(){ $code = input('code'); $userId = session('uid'); switch ($code){ case 1: //B核準 //一大堆邏輯代碼 break; case 2: //c物資部核準` //一大堆邏輯代碼 break; default: //張三發(fā)起申請 //一大堆邏輯代碼 } }}
這時候,張三工程師,很快寫完了代碼。邏輯也正確,權限判斷完全沒問題,很高興的跟客戶開始了一系列的騷操作,并審核通過。
時間過了半個月,軟件還在運維應用期間??蛻艚o張三工程師打電話,我們領導說,要增加一個審核功能,
改為:A填寫申請表——B部門經(jīng)理審核——E主任核實——C物資管理部確認——D張三領用物資
問題來了: 而這個客戶系統(tǒng),有數(shù)十條,類似的審核業(yè)務?如果都這樣變動?
這時候,求張三工程師的心里陰影面積?
總結下: 從上面的例子來說,不能說張三工程師的代碼邏輯有問題,業(yè)務邏輯有問題。但是問題在哪里?
我個人認為,在于沒有很好處理業(yè)務與邏輯之間的關鍵因素。我們常說,信息管理系統(tǒng)業(yè)務是一半,工作流程是一半。如何整合好這兩個關系。需要應用到工作流引擎。
廢話太多,來點實際~
用工作流解決上面張三工程師的問題
李四接手了,張三的業(yè)務,全面分析了,下系統(tǒng)。決定開發(fā)個專門管理該公司的業(yè)務流程問題。 把業(yè)務與流程剝離。
通過可視化快速構建。在2分鐘就完成了上面的邏輯架構,同樣的,改造了數(shù)十條業(yè)務邏輯。而這些,他只用了不到1個小時。
張三工程師,不可思議的說,原來還有工作流這東西~~~
總結來了
通過上面的小Demo應該很容易看出工作流強大的優(yōu)勢在于哪里。
不管你業(yè)務怎么變化,流程怎么變化,都能通過可視化的拖拽設計,
把專業(yè)的流程驅動交給專業(yè)的流程引擎,歸集與統(tǒng)一。
你省去的不僅僅是流程的調研,客戶需求分析時間,
更是你寫if else 一大堆重復代碼的時間。
最后回到原題:
深入淺出,工作流引擎。LCDP(低代碼開發(fā)平臺)的出現(xiàn)并非偶然,而是在發(fā)展過程中的必然,專業(yè)化的表單設計,流程驅動,會打破傳統(tǒng)開發(fā)的弊端,為企業(yè)在快速構建,數(shù)據(jù)驅動上提供先進的技術生產(chǎn)力!
最后推薦幾個國產(chǎn)流程引擎:
PHP流程引擎TPflow https://gitee.com/ntdgg/tpflow PHP優(yōu)秀的工作流新秀
JAVA流程引擎Jflow:https://gitee.com/opencc/JFlow 堅持流程開發(fā)12年
版權聲明:本文內容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。