首页 > 其他分享 >什么是工作流? - 工作流解决了什么问题

什么是工作流? - 工作流解决了什么问题

时间:2023-04-18 23:47:48浏览次数:34  
标签:状态 小明 什么 复杂 状态机 工作 解决 流程

工作流,是把业务之间的各个步骤以及规则进行抽象和概括性的描述。使用特定的语言为业务流程建模,让其运行在计算机上,并让计算机进行计算和推动。

工作流是复杂版本的状态机。

 

上图为工作流退化为基础状态机的例子,小明的状态非常简单,站立->走路->跑步->走路->站立,无限循环,如果让我们实现小明的状态切换,那么我们只需要用一个字段来记录小明当前的状态就好了。 而对于复杂的状态或者状态维度增加且状态流转的条件极为复杂,可能单纯用字段记录状态的实现方式就会不那么理想。

 

 

 

如上图所示,现在交给小明的选择就多了起来,当小明获得金钱的时候,他会根据金钱数额的大小来判断接下来该如何行动,如果数额小于等于3000,那么他决定买一个新手机就够了,如果数额小于等于30万,那么小明就决定去学习一下理财,好好利用这笔钱,但如果小明获得的金钱数量超过了30万,他就决定购置一套房屋,但购置房屋的流程是复杂的,小明决定同时完成交首付和贷款的手续。

其实这个流程还不算特别复杂,但到目前为止,单纯用一个字段来表明状态已经无法满足要求了。

工作流解决的痛点在于,解除业务宏观流程和微观逻辑的耦合,让熟悉宏观业务流程的人去制定整套流转逻辑,而让专业的人只需要关心他们应当关心的流程节点,就好比大家要一起修建一座超级体育场,路人甲只需要关心他身边的这一堆砖是怎么堆砌而非整座建筑。

 

标签:状态,小明,什么,复杂,状态机,工作,解决,流程
From: https://www.cnblogs.com/2324hh/p/17331679.html

相关文章

  • 什么是工作流? - 工作流解决了什么问题
    工作流,是把业务之间的各个步骤以及规则进行抽象和概括性的描述。使用特定的语言为业务流程建模,让其运行在计算机上,并让计算机进行计算和推动。工作流是复杂版本的状态机。 上图为工作流退化为基础状态机的例子,小明的状态非常简单,站立->走路->跑步->走路->站立,无限循环,如果让......
  • 暂未解决的问题
    计算程序scanner关闭后新建出现异常NoSuchElementExceptionimportjava.util.Scanner;publicclasscalculatorTest{publicstaticvoidmain(String[]args){while(true){//保证循环Scannerscanner=newScanner(System.in);......
  • Elasticsearch搜索功能的实现(一)--搜索引擎为什么选ES
    一、应用场景Elasticsearch具有广泛的应用场景,包括全文搜索、日志分析、运维监控、安全分析等。Elasticsearch是开源的实时分布式搜索分析引擎,内部使用Lucene做索引与搜索。适用场景包含信息检索、舆情分析、推荐系统、广告系统等多种对综合检索&召回有需求的场景。二、为......
  • 在开始编码之前,问问为什么
    客户很少知道什么是对的开发者不只是生产代码,更重要的是提供问题的解决方案,代码只是(有时候并非总是)其中的副产品。昨天我写了一篇文章,讲述了顾客认为他们知道自己需要什么,但通常是错误的。一位评论者想知道-你如何得体地了解顾客真正需要什么?我所说的“顾客”有时候,你是通......
  • 真实机u盘安装CentOS进入dracut模式解决办法
    真实机u盘安装CentOS进入dracut模式解决办法1.问题描述  昨天在真实机器(Dell笔记本)通过U盘安装 CentOS72003 操作系统时,无法正确引导,而是进入 dracut 模式,特此记录。2.解决方法  在dracut模式下,运行" ls-al/dev|grepsd "dracut#ls-al/dev|grepsd ......
  • 报错解决:user.Case: (models.E020) The 'Case.check()' class method is currently ov
    Django在启动时报错,如下:user.Case:(models.E020)The'Case.check()'classmethodiscurrentlyoverriddenby<django.db.models.query_utils.DeferredAttributeobjectat0x0000020331E0AE20>.意思是说:在user.Case.check()在执行的过程中被【django.db.models.query_ut......
  • 02 设置工作环境与环境(一)
    1、让GRUB只加载一个文件;需要将多个文件封装成一个文件,成为内核映像文件;包含二级引导器的模块、内核模块、图片、字库文件;为了让GRUB加载这个文件,并解析;需要定义好具体的格式;4KB大小GRUB头、映像文件头描述符、文件头描述符、文件1...;两个c语言结构体,映像文件头描述符s_mlosr......
  • 借书方案知多少解决思路及代码
    问题描述:      小明有5本新书,要借给A,B,C这三位小朋友,若每次每人只能借一本,则可以有多少种不同的借法?设计思路:      1.将5本书从1-5编号,三个人设为i,j,k。因为每人一本且不重复则满足i!=j!=k      2.从第一个人开始枚举,首先确定i的值,然后确定j的值,最后确定k......
  • 成功解决OSError: [E050] Can’t find model ‘en_core_web_sm’.
    成功解决OSError:[E050]Can'tfindmodel'en_core_web_sm'.问题描述在安装spacy包之后,再加载'en_core_web_sm'语言模型时,报出OSError:[E050]Can'tfindmodel'en_core_web_sm'.Itdoesn'tseemtobeaPythonpackageoravalidpathtoa......
  • Python小练习:解决strftime()中国时区乱码问题
    Python小练习:解决strftime()中国时区乱码问题作者:凯鲁嘎吉-博客园 http://www.cnblogs.com/kailugaji/1.mytest.py1#-*-coding:utf-8-*-2#Author:凯鲁嘎吉CoralGajic3#https://www.cnblogs.com/kailugaji/4#Python小练习:解决strftime()中国时区乱码问......