从程序员的角度来看为什么我们需要工作流

news/2024/11/15 9:39:50/文章来源:https://www.cnblogs.com/joe-tang/p/7144915.html
每一个程序员,在接触到工作流的时候,都会有这么一个疑问——我用一般的方法可以实现,为什么还要用工作流?
  
     我曾经也问过这个问题,不过现在稍微有点明白了。别着急要答案,看过下面的例子,或许你也就明白一些了。
 
     这是一个简单的业务——订货流程:
 
  1. 客户提交采购订单

  2. 业务员执行订单处理

  3. 如果缺货,转工厂生产 
           
  4. 仓库出货

  5. 物流发货
 
    如果不使用工作流技术,从头开始开发这个订购流程的业务逻辑,我们需要:
  • 每个活动点都需要开发交互页面和后台处理程序

  • 每个活动的流转都需要硬性判断下一步活动节点及其操作人

  • 每次操作都需要维护业务数据和流程的相关数据

    最终结果就是这样:
 
     这还不包括监视、控制、分析流程的部分。
 
     但是,如果我们使用了工作流

   这样看起来就简单多了。右侧的工作流管理系统,接管了所有订货业务在流程方面的定义和执行。这样做的好处很多:
  • 使用专门的流程数据系统,维护所有涉及流程流转的数据。

  • 提供“流程设计”工具,帮助用户定义订货流程的模型,而且一般都提供了可视化的界面。

  • 所有的流程都依靠流程引擎来处理,避免了需求更改与硬编码之间矛盾的产生。

  • 工作流引擎还提供了众多的API,可以很方便的将工作流的管理和业务操作完美结合。

   所以在合适的项目中引入工作流技术,对于基础开发来说,是非常有益处的:
  • 降低开发风险
        通过使用诸如活动、流转、状态、行为这样的术语,使得业务分析师和开发人员使用同一种语言交谈成为可能。优秀的流程设计建模工具,甚至能使开发人员不必将用户需求转化成详细设计文档。
  • 流程实现的集中统一
        应对业务流程经常变化的情况,使用工作流技术的最大好处是使业务流程的实现代码,不再散落在各式各样的业务系统中。
  • 加速开发
        开发者不用再关注流程的参与者、活动节点的衔接、流转控制……因为这些工作很多被工作流框架接管了。因而开发者开发起来更快、代码出错更少、系统更加容易维护。
  • 提升对迭代开发的支持
        如果系统中业务流程部分被硬编码,就不容易更改,需求分析师就会花费很大的精力在开发前的业务分析中,并且希望一次成功。但可悲的是,在任何软件项目开发中,这都很少能实现。工作流管理系统使得业务流程很容易部署和重新编排,业务流程相关的应用开发可以以一种“迭代/渐进”的方式推进,也就是说工作流技术在某种程度上支持“需求分析不必一次完全成功”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742664.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

003_python3 解释器 注释 运算符

Python3 解释器 1.Linux设置环境变量 $ PATH=$PATH:/usr/local/python3/bin/python3 # 设置环境变量 2.交互式编程 $ python # 启动Python解释器 3.脚本式编程 Windows中写入脚本xx.py文件,执行 python xx.py # cmd 当中直接执行 Linux中文件顶部写入 #! /usr/bin/env py…

2024暑假集训测试4

前言比赛链接这次和高中一起打的,排名一次比一次低了,差点出前一半了…… 主要是 T1 \(dijkstra\) 唐氏复杂度打假了,T2 挂分,T3 没想出来压位,T4 题都没看。 T1 最短路原题:luogu P2966 [USACO09DEC] Cow Toll Paths G。本题考察对 \(Floyed\) 的理解,\(Floyed\) 数组在…

Bootstrap图片样式使用方法

在Bootstrap中自带了几种图片样式,能够让你很快地对其进行使用,这几种样式使用起来相当简单,让我们一起来看看怎么快速调用Bootstrap图片样式。Bootstrap图片圆角样式 在现今的网站建设中,由于扁平化设计的趋势,我们经常会用用到一些CSS3的特性,例如圆角、渐变、阴影等。…

SQL中“ ` ”的作用是什么?

避免和 mysql 的本身的关键字 冲突 所以 用这个符号括起来 虽然有时候不影响 查询 但是最好是要 加上的

《三体开源传》第二章 科技图谱

科技树?汪淼大脑中突然闪过这个概念。哦,不对,应该是科技图谱,图中交织的连线的复杂度已经远远超过树形结构所能描述的单一路径依赖关系,甚至还出现了环形结构和复杂的社群聚集。科技树:科技树是一种结构图,它将技术按照发展顺序排列成树状,展示从基础技术到高级应用的…

Graphrag: Hello World !

这两天抽空玩了一把 Graphrag, 记录一下测试步骤。先决条件: Python 3.10-3.12备注: 以下所有脚本都在 PowerShell环境下运行 1. 首先安装一下 graphrag python包 pip install --trusted-host https://mirrors.huaweicloud.com -i https://mirrors.huaweicloud.com/repository…

R语言软件套保期限GARCH、VAR、OLS回归模型对沪深300金融数据可视化分析

全文链接:https://tecdat.cn/?p=34670 原文出处:拓端数据部落公众号 金融市场的波动性一直是投资者和决策者关注的焦点之一。为了应对市场波动的风险,套保成为了一种重要的金融手段。在这个背景下,使用R语言软件中的GARCH VAR模型对沪深300金融数据进行分析,可以帮助我们更…

【视频讲解】Python比赛LightGBM、XGBoost+GPU和CatBoost预测学生在游戏学习过程表现|数据代码分享

全文链接:https://tecdat.cn/?p=36990原文出处:拓端数据部落公众号分析师:Qi Zhang背景基于游戏进行学习能让学校变得有趣,这种教育方法能让学生在游戏中学习,使其变得有趣和充满活力。尽管基于游戏的学习正在越来越多的教育环境中使用,但能用应用数据科学和学习分析原理…

excel单元格设置为文本为何还要双击

excel单元格设置为文本时为何还要双击才有效? 我选定一行,用右键设置为文本,为何还要单个逐一双击才有效,否则选定求和时(包含其中一个单元格),仍视为数值。而逐一双击太麻烦,怎么解决? 因为这是excel默认设置,如想要不单个操作,可使用分列的方式来批量处理。 具体操…

Interceptor 拦截器

1、拦截器的介绍拦截器使用场景:登录验证:对于需要登录才能访问的网址,使用拦截器可以判断用户是否已登录,如果未登录则跳转到登录页面。 权限校验:根据用户权限对部分网址进行访问控制,拒绝未经授权的用户访问。 请求日志:记录请求信息,例如请求地址、请求参数、请求时…

bootstrap-datetimepicker 项目

项目 此项目是bootstrap-datetimepicker 项目 的一个分支,原项目不支持 Time 选择。其它部分也进行了改进、增强,例如load 过程增加了对 ISO-8601 日期格式的支持。文档是拷贝/粘贴字原项目的文档,并且加入了更多细节说明。 别犹豫了,下载下来试试吧 ! 下载 ZIP 包此地址可…