规则引擎| 青训营笔记

46 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 18 天

1.认识规则引擎

  • 规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。

image-20230131105539523

  • 解决了开发人员重复编码的问题
  • 业务决策与服务解耦合,提高服务的可维护性
  • 缩短开发路径,提高效率

组成部分

  • 数据输入

    • 接受使用预定义语句进行编译
  • 规则理解

    • 按照预定义的规则去正确理解所表达的语法
  • 规则执行

应用场景

  • 风控对抗
  • 活动策略运营
  • 数据分析和清洗

image-20230131110455786

  • 词法分析

    • 把源代码字符串转换为词法单元(Token)的过程
  • 语法分析

    • 在词法分析的基础上,识别表达式的语法结构的过程

    • 抽象语法树:每个节点是一个语法单元

      • image-20230131110927211

2.编译原理基本概念

  • 类型检查

    • 类型综合

      • 根据子表达式的类型构造出父表达式的类型
    • 编译时检查&运行时检查

image-20230131112419769

3.设计一个规则引擎

image-20230131112538853

  • 词法分析:

    • image-20230131112650106
  • 语法分析

    • image-20230131113004729
  • 语法树执行与类型检查