转载本文需注明出处:微信公众号EAWorld,违者必究。
经常会发现,很多流程非常类似,但都又有一些差别,用一条流程来实现,无法支持所有业务。如果用多个流程来实现,流程会很多,工作很重复,有调整的时候,维护起来很麻烦,这种情况就可以考虑使用虚拟流程的方式,降低流程开发复杂度。
看下面两个流程,我们会发现,流程的模式确实非常像,都是经办人录入 -> 复核人复核 -> 相关人员审核 -> 系统处理 -> 通知经办人查看结果 :
针对这个情况,完全可以有上述这样一个虚拟流程,在新的流程开发时,不再画这个流程,而是提供一个配置的方式,配置每个实际和虚拟流程不一样的地方,例如配置录入信息的界面、配置复核角色、配置审核角色、配置系统处理的实现、配置结果查看界面,用这些配置自动生成一个流程定义模板,这样运行的时候,还是不同的流程定义产生不同的流程实例。如果把这些配置设计成一个 Excel ,就可以用 Excel 来写需求、评审,用 Excel 生成运行流程了。
前面我讲的业务流程,大多数情况可以总结为虚拟流程,这样做的好处是:
确定了通用的业务处理模式,用这种模式和需求方讨论特别容易沟通,因为虚拟流程是可以用业务语言描述的,不再掺杂技术语言
开发、测试很方便,不需要每个重画,也容易检查
一旦类似业务做出调整,只要改变从虚拟流程生成实际流程的代码即可,容易维护
需要指出的是:
总结虚拟流程一定要根据业务特征进行抽象,不要简单的从技术上可重用进行抽象
虚拟流程不能解决所有问题,实在解决不了,就用传统开发方式,没必要求全责备
关于作者:焦烈焱,普元信息CTO,致力于技术创新和金融创新解决方案研究。专注于企业技术架构领域,对分布式环境的企业计算、 企业信息架构的规划与实践有着丰厚经验,带领普元技术团队相继在云计算、大数据及移动开发领域取得多项突破,并主持中国工商银行、中国建设银行等多家大型企业技术平台的规划与研发。
关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。
来源:oschina
链接:https://my.oschina.net/u/3920392/blog/3066942