目录
1.背景&痛点
1)业务规则变化快,比如 价格的系数调整,询价业务规则不断调整并且后期可能出现更多询价场景.
2)开发>50%的精力和时间在业务规则的开发上.
3)业务人员理解规则须有很强的业务知识,新规则需要开发配合,业务规则需求提出后上线的实际运行过程对业务人员不透明.导致开发和业务的沟通成本大,最好支持业务人员可视化配置规则.
4)规则的实现往往需要很多的if...else代码的嵌套,对后期开发理解和维护成本均不友好.目前对规则也有抽象,但是程度还不够且不支持业务人员可视化配置,没有实现规则表达式.
目标:快速低成本更新业务,流程自动化.
2.目前主流规则引擎框架
规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
规则本质上是一个函数,如y=f(x1,x2,..,xn)
规则引擎由三部分
-
- 事实(Fact):就是用户输入的已经事实,可以理解为推理前的已知对象。
- LHS(Left Hand Side):可以理解为规则执行需要满足的条件。
- RHS(Right Hand Sike):可以理解为规则执行后的返回对象。
两个重要模块:
-
- 规则管理:可以理解为逻辑上管理规则,主要涉及规则、事实对象和规则集三个实体。涉及到规则变更时,最好对规则加个版本,可通过规则