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

每一个程序员,在接触到工作流的时候,都会有这么一个疑问——我用一般的方法可以实现,为什么还要用工作流?

我曾经也问过这个问题,不过现在稍微有点明白了。别着急要答案,看过下面的例子,或许你也就明白一些了。

这是一个简单的业务——订货流程:

  1. 客户提交采购订单
  2. 业务员执行订单处理
  3. 如果缺货,转工厂生产
  4. 仓库出货
  5. 物流发货

如果不使用工作流技术,从头开始开发这个订购流程的业务逻辑,我们需要:

  • 每个活动点都需要开发交互页面和后台处理程序
  • 每个活动的流转都需要硬性判断下一步活动节点及其操作人
  • 每次操作都需要维护业务数据和流程的相关数据

最终结果就是这样:

这还不包括监视、控制、分析流程的部分。

但是,如果我们使用了工作流

这样看起来就简单多了。右侧的工作流管理系统,接管了所有订货业务在流程方面的定义和执行。这样做的好处很多:

  • 使用专门的流程数据系统,维护所有涉及流程流转的数据。
  • 提供“流程设计”工具,帮助用户定义订货流程的模型,而且一般都提供了可视化的界面。
  • 所有的流程都依靠流程引擎来处理,避免了需求更改与硬编码之间矛盾的产生。
  • 工作流引擎还提供了众多的API,可以很方便的将工作流的管理和业务操作完美结合。

所以在合适的项目中引入工作流技术,对于基础开发来说,是非常有益处的:

  • 降低开发风险

通过使用诸如活动、流转、状态、行为这样的术语,使得业务分析师和开发人员使用同一种语言交谈成为可能。优秀的流程设计建模工具,甚至能使开发人员不必将用户需求转化成详细设计文档。

  • 流程实现的集中统一

应对业务流程经常变化的情况,使用工作流技术的最大好处是使业务流程的实现代码,不再散落在各式各样的业务系统中。

  • 加速开发

开发者不用再关注流程的参与者、活动节点的衔接、流转控制……因为这些工作很多被工作流框架接管了。因而开发者开发起来更快、代码出错更少、系统更加容易维护。

  • 提升对迭代开发的支持

如果系统中业务流程部分被硬编码,就不容易更改,需求分析师就会花费很大的精力在开发前的业务分析中,并且希望一次成功。但可悲的是,在任何软件项目开发中,这都很少能实现。工作流管理系统使得业务流程很容易部署和重新编排,业务流程相关的应用开发可以以一种“迭代/渐进”的方式推进,也就是说工作流技术在某种程度上支持“需求分析不必一次完全成功”。

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

时间: 2024-08-12 16:27:12

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

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

每个程序猿,在接触到工作流的时候,都会有这么一个疑问--我用一般的方法能够实现,为什么还要用工作流? 我以前也问过这个问题,只是如今略微有点明确了.别着急要答案,看过以下的样例,也许你也就明确一些了. 这是一个简单的业务--订货流程: 客户提交採购订单 业务员运行订单处理 假设缺货,转工厂生产 仓库出货 物流发货 假设不使用工作流技术,从头開始开发这个订购流程的业务逻辑,我们须要: 每一个活动点都须要开发交互页面和后台处理程序 每一个活动的流转都须要硬性推断下一步活动节点及其操作人 每次操作都须

从一个程序员的角度看——微信小应用(第二弹 见解)

最近公司的小程序刚通过了代码审核(待发布状态),从最初对它的学习 到开发 到小程序待发布 再到28日微信公开课,也算一步步的了解了微信小程序吧. 28日微信pro公开课张小龙针对小程序进行了一些答疑,之后行业的同僚都很关注,似乎大家还是有很多疑惑.之前初学后写过博客 从一个程序员的角度看--微信小应用(第一弹 初学),今天决定再写一篇小程序的小文,所以此篇谈谈我对小程序的理解吧. 说说张小龙回答的8个问题 1.小程序的入口在哪里?张小龙给出的答案是:小程序在微信没有入口. 2.小程序会不会有类似

以程序员的角度怎么购买一台「性价比高的电视」

前俩天有小伙伴在我的文章下留言,说能否把 [国内电视机都介绍一下],今天我已在TV端开发多年的程序员的角度.谈谈已程序员的角度如何购买一台性价比高的电视. 国内大的电视机品牌介绍 长虹 -- 成立于1958年,我家小时候就是用的长虹大头彩电. 海信 -- 成立于1969年,电视机全球五强,国内销量第一. 康佳 -- 成立于1980年,国内改革开放后第一家中外合资企业. 创维 -- 成立于1988年,基于酷开安卓销量仅次于海信. TCL -- 成立于1981年,历经二十年的发展,形成了以王牌彩电为

从一个程序员的角度看——微信小应用

前言: 最近初步了解了一下微信小应用,APP端的同事也非常感兴趣,于是在公司内部做了一个小小的分享,分享的过程中有很多讨论内容,大家也是非常感兴趣和有自己的看法,当时"混乱"的场面好几次我都没有把持住.以下内容部分来自于内部分享所用ppt.文章对微信小应用的使用做了展示性介绍,并简单介绍了代码结构.后端交互方法.最后提出一些总结和疑问.文章内容比较主观,有不对的地方欢迎大家指出纠正. 前段时间微信小应用公开内测,在朋友圈火了一把,各种阐述疯狂蔓延,干掉APP之类的说法比较突出,确实达到

从程序员的角度深入理解MySQL

前言 作为一名工作了4年的程序猿,今天我将站在程序员的角度以MySQL为例探索数据库的奥秘! 数据库基本原理 第一,数据库的组成:存储 + 实例 不必多说,数据当然需要存储:存储了还不够,显然需要提供程序对存储的操作进行封装,对外提供增删改查的API,即实例. 一个存储,可以对应多个实例,这将提高这个存储的负载能力以及高可用:多个存储可以分布在不同的机房.地域,将实现容灾. 第二,按Block or Page读取数据 用大腿想也知道,数据库不可能按行读取数据(Why?   ^_^).实质上,数据

从一个程序员的角度看——微信小应用(含直播视频)

前言: 最近初步了解了一下微信小应用,APP端的同事也非常感兴趣,于是在公司内部做了一个小小的分享,分享的过程中有很多讨论内容,大家也是非常感兴趣和有自己的看法,当时"混乱"的场面好几次我都没有把持住.以下内容部分来自于内部分享所用ppt.文章对微信小应用的使用做了展示性介绍,并简单介绍了代码结构.后端交互方法.最后提出一些总结和疑问.文章内容比较主观,有不对的地方欢迎大家指出纠正. 前段时间微信小应用公开内测,在朋友圈火了一把,各种阐述疯狂蔓延,干掉APP之类的说法比较突出,确实达到

站在服务端程序员的角度下的一下编程看法

作者:陈硕链接:https://www.zhihu.com/question/22608820/answer/21968467来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 既然你是在校学生,而且编程语言和数据结构的基础还不错,我认为应该在<操作系统>和<计算机体系结构>这两门课上下功夫,然后才去读编程方面的 APUE.UNP 等书. 下面简单谈谈我对学习这两门课的看法和建议,都是站在服务端程序员的角度,从实用主义(pragmatic)的立场出发而言

从程序员的角度分析微信小程序

昨天朋友圈被微信小程序刷爆了. 我赶快在书架上拿出三年前买的书,把上面的土擦干净,压压惊. 作为一个并不是资深的程序员. 从程序员的角度分析一下微信小程序,欢迎指点. 首先吐槽 微信小程序只发了200个邀请号,和我预想的一样,张小龙并没有翻我牌,难道就不能雨露均沾吗? 先来了解下什么是微信小程序. 转自知乎 微信也许重申了"我们是一款约炮软件" 微信还提供了一大堆接口和组件(不好意思,说了句废话). 下面是禅叔的观点: 小程序原理就是用JS调用底层native组件,和React Nat

从程序员的角度谈创业三年

  摘要:在创业三年时间里作为联合创始人,虽然拿着大家均等的股份,我始终是没有什么话语权的,但是,这也给了我从旁观者的角度看清整个局面的机会.创业公司的成败绝大程度取决于技术大牛和公司 Leader,这两个人最好能在性格上形成互补,而遗憾的是我们公司是同一人. 关于决定是否创业 2012年4月,正好三年前整,在深圳能源正混的郁郁不得志的时候,大学的好兄弟找到我一起创业,他们有钱.有 idea,就是差人,当时的我还是技术菜鸟,本科学的也不是计算机,看着移动互联网蓬勃的发展羡慕不已.很快就答应了一起