最先接触工做流,是在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 中,二者结合,成为更增强大的业务系统基础开发框架。