规则引擎设计与实现| 青训营笔记

112 阅读3分钟

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

规则引擎

定义

规则引擎即是:可降低复杂业务逻辑组件复杂性、降低应用程序的维护和可扩展性成本的组件。 实现从应用程序代码中分离业务决策,使用预定义语义模块编写业务决策。 接受数据输入,解释业务规则,并根据业务规则作出业务决策。

组件

  • 数据输入:支持接受使用预定义语义编写的规则作为策略集
  • 规则理解:正确理解业务规则根据预定义的语义、语法、优先级、操作符等表达的语义的能力。
  • 规则执行:根据执行时输入的参数,正确解释和执行策略集中的规则,并在执行时检查数据类型,确保正确的执行结果

应用场景

黑灰生产对抗、策略研发、产品需要根据特点快速识别和对抗 规则引擎作为风控系统的核心,使生产和研究人员能够不断调整和优化对策,以达到最佳的风控和识别效果。

活动策略运作

业务活动的运营需要根据用户反馈及时优化和调整运营策略 规则引擎解锁服务代码和业务逻辑,以提高操作策略迭代的效率 促进新的探索和效果验证

数据分析和清理

在数据分析系统中,规则引擎可以方便地对数据进行组织、清理和转换 数据分析可以根据不同的需求定制数据处理规则,快速、轻松地生成所需的数据

各种类型生成抽象语法树

之后要学习的就是实际地在语法规则文件中添加生成抽象语法树的 action,通过实际例子来理解语法树生成的具体过程,需要分析生成的类型有

表达式的抽象语法树生成
语句的抽象语法树生成
声明的抽象语法树生成

语法分析是在词法分析的基础上识别表达的语法结构的过程。 抽象语法树:上下文无关语法,语言句子可以不考虑上下文而判断正确,可以使用Bacos范式(BNF)表示。 类型检查:类型综合,根据子表达式的类型构造父表达式的类型。 编译时检查和运行时检查:类型检查可以发生在表达式编译阶段,即构造语法树时,也可以发生在执行时。

36e095c1e7414333b9ea80a62f0937e9_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp

总结

今天主要学习了规则引擎的设计与实现,词法分析、抽象语法树、语法分析和类型检查的知识。通过创建一个简易的规则引擎,巩固了所学内容,有着更进一步的理解与感悟。