这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天。今天学习了如何通过Go对规则引擎进行设计与实现。
1.规则引擎
规则引擎的定义:规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入、解释业务规则、并根据业务规则做出业务决策。
规则引擎的组成部分 规则引擎由数据输入、规则理解和规则执行组成。
规则引擎的应用场景 规则引擎可用于风控对抗、活动策略运营、数据分析和清洗等场景。
2.编译原理的基本概念
词法分析 词法分析就是把源代码字符串转换为词法单元(Token)这个过程。
语法分析 语法分析就是在词法分析的基础上,识别表达式的语法结构过程。
3.设计规则引擎
预定义内容
定义词法格式(合法Token),数据类型,运算符,以及运算符的优先级等等。
词法分析
设计词法分析的状态机
语法分析
设计语法树结构
语法树执行和类型检查
预先定义好每种操作符的执行逻辑。
执行时进行类型检查