目录

关于微观流程设计

“微观流程设计”通常指把一个宏观流程(如一个业务流程,系统功能或用户操作链路)拆解到可执行、可落地的最小步骤,并对每一步的输入、输出、责任、规划、异常进行精细化设计。

一、什么是微观流程设计

**概括:**把“事情怎么做”设计到“下一步不用再猜”的程度

关注点:

  • 每一步谁来做
  • 何时做
  • 输入是什么
  • 输出是什么
  • 失败怎么办
  • 是否可自动化/可复用

常用于:

  • 业务流程(审批、下单、结算)
  • 软件功能设计(按钮点击后的完整链路)
  • 系统交互设计(前后端/模块间)
  • 自动化、低代码、RPA场景

二、微观流程设计的6个核心要素

1.触发条件(Trigger)

  • 用户点击?
  • 定时任务?
  • 消息到达?
  • 状态变化?

明确流程为什么开始

2.输入(Input)

  • 必填数据
  • 可选数据
  • 默认值来源
  • 数据校验规则

不明确输入,流程一定会失控

3.处理步骤(Steps)

将“处理”拆成原子动作:

  • 判断
  • 计算
  • 调用
  • 存储
  • 通知

每一步最好满足:一句话能说明 + 不能再拆

4.输出(Output)

  • 返回给谁?
  • 同步/异步?
  • 数据结构?
  • 是否影响下一流程?

5.异常与分支(Exception & Branch)

必须明确:

  • 校验失败怎么办
  • 超时怎么办
  • 部分成功怎么办
  • 是否允许重试/回滚

微观流程设计里,异常比正常流程更重要

6.状态与边界(State)

  • 流程状态(Init/Processing/Done/Failed)
  • 幂等性
  • 是否可重复执行
  • 是否可中断/恢复

三、常用设计方法

方法1:逐步拆解法

先从一句话开始:”用户点击保存按钮“

不断追问:

  • 然后呢?
  • 需要什么数据?
  • 谁负责?
  • 失败怎么办?

直到拆解为类似以下:

1. 校验输入参数
2. 判断是否重复提交
3. 写入数据库
4. 提交事务
5. 返回结果

方法2:输入-处理-输出(IPO)表

对于每一个步骤,写清:

步骤———————输入————————处理———————-输出

校验——————表单数据——————–格式校验—————–校验结果

保存—————–校验通过数据——————写DB———————-ID

方法3:时序/流程图(适合复杂场景)

  • 泳道图(谁做)
  • 时序图(谁先谁后)
  • 状态机(状态变化)

四、一个软件场景的微观流程示例

功能:WPF中点击”开始处理“按钮

宏观流程:用户点击-> 处理数据 -> 显示结果

微观流程

1. UI层禁用按钮,显示 Loading
2. 校验当前状态是否允许处理
3. 收集界面参数
4. 调用业务服务
5. 服务校验参数合法性
6. 执行业务逻辑
7. 捕获异常并分类
8. 返回结果对象
9. UI 线程更新界面
10. 恢复按钮状态

五、误区

  1. 只画流程图,不写规则
  2. 步骤粒度忽大忽小
  3. 忽略异常路径
  4. 把”实现细节“和”流程“混在一起
  5. 微观流程写成了”伪代码“,却没明确责任边界

判断流程是否”够微观“

使用问题自检:这个步骤,交给另一个人/模块,他还会不会问我”然后呢?“ 如果会,说明还不够微观。