摘要:规则引擎中常见的判断方式包括条件分支、决策表和决策树。很多团队刚开始使用 JVS-Rules 时,不知道同一个业务规则应该选择哪种节点。本文从规则形态和维护方式出发,介绍三者的适用场景。
关键词:条件分支、决策表、决策树、JVS-Rules、规则引擎
一、为什么会有选择困难
同一个业务规则,往往可以用多种方式表达。
比如客户准入:
- 可以用条件分支一层层判断。
- 可以用决策表配置条件组合。
- 可以用决策树表达判断路径。
如果只看最终结果,三者都可能实现。
但从可读性、维护性、复杂度来看,选择并不一样。
二、条件分支适合什么
条件分支适合简单、明确的流程路径判断。
典型形式是:
适合场景:
- 年龄小于 18 岁直接拒绝。
- 金额大于 10000 进入高级审批。
- 订单状态为异常时进入人工处理。
- 某个字段为空时返回错误结果。
条件分支的优势是直观。
但如果条件越来越多,分支越来越深,画布会变复杂,维护成本会上升。
三、决策表适合什么
决策表适合多条件组合对应多个结果。
典型形式是:
适合场景:
- 客户等级、风险分、逾期次数决定额度。
- 产品类型、渠道、地区决定费率。
- 用户等级、活动类型决定优惠权益。
- 评分区间和客户类别决定审批结论。
决策表的优势是结构清晰,适合业务人员维护。
如果规则天然可以整理成表格,就不要硬拆成大量条件分支。
四、决策树适合什么
决策树适合多层级、路径清晰、需要解释判断过程的规则。
典型形式是:
适合场景:
- 风险识别路径。
- 复杂准入判断。
- 问卷式判断。
- 多级分类规则。
- 需要说明“为什么走到这个结果”的场景。
决策树的优势是路径表达清楚。
相比决策表,它更强调判断顺序和决策原因。
五、一个简单选择方法
可以用下面这个判断方式:
如果规则只有少量路径,优先用条件分支。
如果规则像一张表,优先用决策表。
如果规则像一棵逐层判断的树,优先用决策树。
如果规则需要先计算分值,再根据分值输出结果,可以使用评分卡 + 决策表。
如果某段规则会被多个流程复用,可以拆成独立决策流,再通过规则流节点引用。
六、案例对比
场景 1:年龄准入
规则:
推荐:条件分支。
原因:规则简单,路径明确。
场景 2:额度匹配
规则:
客户等级 + 风险分 + 逾期次数 -> 授信额度
推荐:决策表。
原因:多条件组合,适合表格维护。
场景 3:多层风险识别
规则:
推荐:决策树。
原因:判断过程有明显层级,需要解释路径。
七、不要只追求“能实现”
规则引擎配置时,一个常见误区是:只要能跑通就行。
但规则后续一定会变化。
所以要考虑:
- 业务人员能不能看懂。
- 实施人员能不能维护。
- 开发人员能不能联调。
- 规则执行路径能不能解释。
- 规则变多后是否还能管理。
选节点,本质上是在选择未来的维护方式。
八、小结
条件分支、决策表、决策树没有绝对优劣。
它们分别适合不同形态的规则:
- 条件分支:简单路径判断。
- 决策表:多条件组合。
- 决策树:多层级判断路径。
在 JVS-Rules 中,三者可以组合使用。真正好的规则设计,不是把所有规则塞进一个节点,而是根据业务表达方式选择最容易理解和维护的结构。