这是我参与「第五届青训营」伴学笔记创作活动的第5天
规则引擎 :
嵌入在应用中的组件,将业务决策从应用中抽离出来,并使用预定义的语义编写决策。接受数据输入,解释业务规则,做出决策
- 应用场景:
- 1)风控对抗 : 黑灰产的对抗过程,根据黑灰产特征进行快速识别和对抗
- 2)活动运营 : 根据用户效果反馈进行运营策略的优化和调整; 服务代码与业务运营逻辑解耦,提高运营策略的迭代效率;
- 3)数据分析及数据清洗
- 优点: 解决开发人员重复编码问题, 业务决策与服务本身解耦,提高服务的可维护性, 缩短开发路径,提高效率
步骤
- 组成:【1】数据输入(接受策略集) 【2】规则理解(预定义语义)【3】规则执行 (类型检查)
- 输入输出:参数注入, 类型检查(综合检查【根据子表达式构造父表达式的类型】; 运行/编译时检查【编译时提前声明,执行时根据传入的参数的类型,在执行过程中检查】)
- 理解: 词法分析(把源代码字符串转化为词法单元, 如基于有限状态机 DFA); 语法分析 (在词法分析的基础上,识别语法结构)
- 执行: 抽象语法树
- 特点:上下文无关语法和递归下降算法。
- 其中,上下文无关语法无需考虑上下文就能判断正确性;递归下降算法是对Token进行语法展开,该过程中可能会遇到递归问题。
小结
认识到规则引擎概念,设计一个系统,业务人员进行简单系统操作就生产产品,开发人员只需,不像传统操作需要开发人员不断根据业务人员需求生产只符合单一项目的产品。