最先接觸工做流,是在04年左右,那年,我創造了 Aries 框架的前身初版框架,另外一個同事,創造了工做流的初版框架。html
只是那時候,我並未參與工做流的核心設計,僅僅是幫寫了個流程設計器,就是下圖這個懷舊的樣子:前端
而後提供一些(撤回、退回)回收算法的意見。git
並提供:CYQ.Data 的源碼做爲底層數據層,那時候還沒開源 CYQ.Data。github
悲催的是,同事拿到 CYQ.Data 框架的源碼,卻把它打散了,沒用MAction,只用MProc,並來了個二次封裝,把sql語句搞了一堆配置的xml文件,估計是被mybatis毒害了。
以致於後來,有一個項目要用到oracle時,呵呵就兩個字:
好在手頭上還有舊版本的源碼,把報錯的xml配置Sql文件重寫,把相關調用視圖語句也重寫,勉強在當時的項目流程裏不報錯。
配置的xml語句太多,所有檢測和重寫不現實,畢竟對工做流框架一丁點都不熟。
估計那時候的人年輕啊,所謂的支持多數據庫,都是喜歡這麼坑人的,算法
就像如今,喜歡用Dapper的,玩玩支持單數據庫還能夠,如果支持多數據庫,那也是一個大坑。sql
提及來,當年,那麼多項目都用到工做流,我卻沒有涉入,連怎麼使用都沒學,更別說瞭解工做流框架的核心思想了。數據庫
只是後來,那個oracle項目,讓我不得不接觸工做流,由於報錯啊!後端
那時候的我還在全力重寫Aries,做爲技術支持,我只好稍爲了解下工做流。mybatis
不瞭解還好,一瞭解就頭大,這代碼,這命名,這邏輯,我槽,跟我高中時讀英文做文有啥區別,一圈下來,就三字:看不懂。併發
好在,有時候解決問題,並不須要你懂它,只要運行,看到哪裏報錯,把報錯相關的地方,修改一下就能夠了。
後來,Aries上線了,不過卻沒有配套工做流,由於機制不同,Aries的純自然html,和早期工做流的aspx,ascx不協調。
開始想重構,不過在前先後後看了一個多月的源碼後,就放棄了,舊同事能把代碼寫的自然帶混淆效果,我也是服了。
放棄了重構,按本身的思惟,重寫吧,新重寫的工做流初命名是叫:Scorpio(天蠍座)纔剛設計好數據庫,寫了個開頭,就被各類事情打斷了,而後妖折了。
這重構和重寫是有區別的:
重構,是須要了解原做者的思路,並逐步進行改進,或重寫。
重寫:不須要了解原做者的思路。
後來,工做流這事就放下了,放下了好幾年。
直到去年,老東家讓我幫解決工做流上的一個問題,
畢竟當年框架的原始做者已經離開了,二次接手維護的人,也離開了,估計也沒人敢三次接手維護了。
所以又讓我重拾了工做流了:
又看那天書般的工做流代碼,唉,好在一週後,感受好像看懂了一些,問題也幫解決了〜
前先後後,接觸和了解工做流也好幾年了。
Aries也出來不少年了,是時候配上工做流了。
因而,動手了,只是沒想到,兩個多月,無眠不休,才重寫完。
除了流程圖的樣式有所保留,其它代碼所有重寫了:
終於,十二宮,迎來了新的成員:Gemini(雙子座)
嗯,如今已經集齊四個,還差八個就能夠招喚雅典娜了:
Aries(白羊座):.NET Develop Framework(適合場景:業務系統、內部信息系統、後臺管理系統、ERP,支持.NET Core)
Taurus(金年座):Taurus.Mvc(適合場景:對性能和併發有較高要求的電商、站點、WebAPI等系統,支持.Net Core)
Gemini(雙子座):Gemini.Workflow 使用簡單,功能強大的工做流框架。
Sagit(射手座,Sagittarius):IOS Develop Framework(Sagittarius 射手座:IOS下的一套基礎快速開發框架)
一、Gemini.Workflow 雙子工做流入門教程一:定義流程:流程圖屬性
二、Gemini.Workflow 雙子工做流入門教程二:定義流程:流程節點介紹
三、Gemini.Workflow 雙子工做流入門教程三:定義流程:流程節點、遷移條件參數配置
四、Gemini.Workflow 雙子工做流入門教程四:流程應用
五、Gemini.Workflow 雙子工做流入門教程五:業務表單開發
後端:Gemini.Workflow API 文檔和 前端: Gemini.Workflow.js API 文檔:
https://github.com/cyq1162/Aries/tree/master/Aries.Document
目前 Gemini.Workflow 雙子流是配套在 Aries 中,二者結合,成爲更增強大的業務系統基礎開發框架。