关于微观流程设计
目录
“微观流程设计”通常指把一个宏观流程(如一个业务流程,系统功能或用户操作链路)拆解到可执行、可落地的最小步骤,并对每一步的输入、输出、责任、规划、异常进行精细化设计。
一、什么是微观流程设计
**概括:**把“事情怎么做”设计到“下一步不用再猜”的程度
关注点:
- 每一步谁来做
- 何时做
- 输入是什么
- 输出是什么
- 失败怎么办
- 是否可自动化/可复用
常用于:
- 业务流程(审批、下单、结算)
- 软件功能设计(按钮点击后的完整链路)
- 系统交互设计(前后端/模块间)
- 自动化、低代码、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. 恢复按钮状态五、误区
- 只画流程图,不写规则
- 步骤粒度忽大忽小
- 忽略异常路径
- 把”实现细节“和”流程“混在一起
- 微观流程写成了”伪代码“,却没明确责任边界
判断流程是否”够微观“
使用问题自检:这个步骤,交给另一个人/模块,他还会不会问我”然后呢?“ 如果会,说明还不够微观。