什么是工作流技术?
工作流是企业级开发中常见的技术,今天来科普一下。
什么是工作流
工作流就是把业务流程用技术手段管理起来。
举个例子:请假流程
- 员工提交请假申请
- 直属领导审批
- 如果请假超过3天,需要HR审批
- 审批通过,通知员工
这个流程用代码硬写可以实现,但如果流程变了(比如加一个部门经理审批),就要改代码。
用工作流引擎,可以把流程配置化,改流程不用改代码。
工作流的核心概念
流程定义
用图形或者配置文件定义流程怎么走。
流程实例
每次发起一个具体的流程(比如张三的请假申请)就是一个实例。
任务
流程中的每个节点,比如"领导审批"就是一个任务。
网关
流程的分支判断,比如"请假天数是否大于3天"。
常用的工作流引擎
Activiti
Java领域最流行的工作流引擎之一。功能全面,社区活跃。
Flowable
从Activiti分支出来的,更现代一些。
Camunda
另一个流行的选择,性能不错。
什么时候需要工作流
需要的情况:
- 有复杂的审批流程
- 流程可能经常变动
- 需要流程可视化、可追溯
不需要的情况:
- 流程很简单(就两三步)
- 流程基本不会变
- 小项目,没必要引入复杂框架
我的看法
工作流是企业级开发的常见需求,但不是每个项目都需要。
如果你的项目有复杂的审批流程,而且可能会变,工作流引擎是很好的选择。
如果只是简单的流程,自己写代码可能更简单。
学工作流不是必须的,等你遇到需要的场景再学也不迟。
