什么是工作流?为什么程序员要用它?
每一个程序员,在接触到工作流的时候,都会有这么一个疑问——我用一般的方法可以实现,为什么还要用工作流?
我曾经也问过这个问题,不过现在稍微有点明白了。别着急要答案,看过下面的例子,或许你也就明白一些了。
这是一个简单的业务——订货流程:
如果不使用工作流技术,从头开始开发这个订购流程的业务逻辑,我们需要:
- 每个活动点都需要开发交互页面和后台处理程序
- 每个活动的流转都需要硬性判断下一步活动节点及其操作人
- 每次操作都需要维护业务数据和流程的相关数据
最终结果就是这样:
这还不包括监视、控制、分析流程的部分。
但是,如果我们使用了工作流
这样看起来就简单多了。右侧的工作流管理系统,接管了所有订货业务在流程方面的定义和执行。这样做的好处很多:
- 使用专门的流程数据系统,维护所有涉及流程流转的数据。
- 提供“流程设计”工具,帮助用户定义订货流程的模型,而且一般都提供了可视化的界面。
- 所有的流程都依靠流程引擎来处理,避免了需求更改与硬编码之间矛盾的产生。
- 工作流引擎还提供了众多的API,可以很方便的将工作流的管理和业务操作完美结合。
所以在合适的项目中引入工作流技术,对于基础开发来说,是非常有益处的:
- 降低开发风险
通过使用诸如活动、流转、状态、行为这样的术语,使得业务分析师和开发人员使用同一种语言交谈成为可能。优秀的流程设计建模工具,甚至能使开发人员不必将用户需求转化成详细设计文档。
- 流程实现的集中统一
应对业务流程经常变化的情况,使用工作流技术的最大好处是使业务流程的实现代码,不再散落在各式各样的业务系统中。
- 加速开发
开发者不用再关注流程的参与者、活动节点的衔接、流转控制……因为这些工作很多被工作流框架接管了。因而开发者开发起来更快、代码出错更少、系统更加容易维护。
- 提升对迭代开发的支持
如果系统中业务流程部分被硬编码,就不容易更改,需求分析师就会花费很大的精力在开发前的业务分析中,并且希望一次成功。但可悲的是,在任何软件项目开发中,这都很少能实现。工作流管理系统使得业务流程很容易部署和重新编排,业务流程相关的应用开发可以以一种“迭代/渐进”的方式推进,也就是说工作流技术在某种程度上支持“需求分析不必一次完全成功”。
转载说明:
作者:龙轩
原文链接:https://blog.csdn.net/xiaoxian8023/article/details/34468739
什么是工作流?为什么程序员要用它?相关推荐
- 从程序员的角度来看为什么我们需要工作流
每一个程序员,在接触到工作流的时候,都会有这么一个疑问--我用一般的方法可以实现,为什么还要用工作流? 我曾经也问过这个问题,不过现在稍微有点明白了.别着急要答案,看过下面的 ...
- 一款自带工作流引擎的Node.js全栈框架,程序员的接单神器
大家好,我是小编南风吹,每天推荐一个小工具/源码,装满你的收藏夹,让你轻松节省开发效率,实现不加班不熬夜不掉头发! 今天小编推荐一款自带工作流引擎的Node.js全栈框架, 是程序员的接单快手 ...
- 关于程序员的政治(转)
其实一直都不太懂得办公室的政治,我出来一年多了,自己喜欢做的事情没做到,当初也很傻很天真的觉得事业单位恶心,企业只要有能力就一定有出头之日,拒绝了同学好友的要求.现在悔到肠子都青了.下面只是我总结的一 ...
- Java程序员修炼之路(一)我们为什么选择Java
我们为什么选择Java 大多数人选择Java可能只是因为听说Java前景好.Java比较好找工作.Java语言在TIOBE排行榜上一直位于前三等等之类的原因,但是Java具体好在哪里,心里却是没有什么 ...
- [转]程序员技术练级攻略
2019独角兽企业重金招聘Python工程师标准>>> 月光博客6月12日发表了<写给新手程序员的一封信>,翻译自<An open letter to those ...
- php转java知乎_php程序员来谈谈php和java
本人一直以来从事PHP互联网开发,之前用过Thinkphp,不过最近几年一直用Yii2.最近由于公司要开发一套OA系统,所以开始用JAVA在做(php开源的工作流引擎真的太烂,自己开发一套又没时间), ...
- 8月书讯 | 像大师级程序员一样思考
20 世纪 80 年代,电脑还不是那么普及.一个住在乡下的少年,彼时还没有一台属于自己的电脑,即使不能自由地编写程序,他却对编程语言产生了浓厚兴趣.多年后正是这种兴趣,促使他发明了一门了不起的语言-- ...
- 初级程序员常犯错误一览
作者 | 饶全成 来源 | 码农桃花源(ID:CoderPark) 最近接手其他人做的项目,导致之前的一些幻想破灭了.因为刚工作的时候做项目是php,而php本身的web框架一般只简单区分mvc,稍微 ...
- 程序员的编程能力层次模型
编程技能层次 编程技能层次,指的程序员设计和编写程序的能力.这是程序员的根本. 0段-非程序员: 初学编程者,遇到问题,完全是懵懵懂懂,不知道该怎么编程解决问题.也就是说,还是门外汉,还不能称之为&q ...
最新文章
- android列表勾选框,android listview实现复选框列表
- Ubuntu:Ubuntu下安装Anaconda和Tensorflow的简介、入门、安装流程之详细攻略
- JQuery的插入操作滚动条显示返回顶部
- Java语法教程-Java开发环境安装JDK
- 07-Python之面向对象编程(定义)
- Ibatis2到mybatis3的转变1
- 使用XLocalizer进行ASP.NET Core本地化
- 传统银行的战略转型之路,长沙银行迈向数据驱动提质年
- 如何判定耿耿数已经被bind过?
- Android Binder机制的Native应用
- Output error file to the following location:[ A:\GHOST ERR.TXT] 错误处理
- 移动pc一套代码_【腾讯】如何避免 CDN 为 PC 端缓存移动端页面
- 啊哈算法---快速排序(C语言)
- 协同办公OA业务系统数据集成(3)-基于OA(e-cology Jersey)定义Rest Api前端数据接口封装
- 通过经纬度求解方位角
- shift用计算机,shift是什么意思_shift键有什么用? - 学无忧
- Android 解析微信基础表情并显示
- TV新媒体电商发展遇瓶颈
- 工程经济作业1答案_2018年电大《工程经济与管理》阶段作业1及答案(网上作业).doc...
- 5分钟搞懂什么是深度学习