这是我参与「第五届青训营 」笔记创作活动的第6天
什么是规则引擎
规则引擎 (RE) 是用于自动管理某些高度可变过程的模块。 基本概念包含将过程中涉及的对象与实现这些过程的逻辑分离。
我的理解是,规则引擎是按照一定的设计模式,对代码进行特定格式的提取,并制定规则。有了规则引擎,能够简化代码,开发者只需要将需要更改的代码输入进去,程序就会自动的进行修改,也就是根据业务规则做出业务决策。老师给的这张图就很形象的把规则引擎如何应用表现出来,这样就大大解耦,效率也得到了提高。
组成部分
- 数据输入
- 规则理解
- 规则执行
词法分析(将一个字符串分解为多个token) => 语法分析(针对token进行检查,包括token的顺序以及token是否符合所定义的语法) => 构造抽象语法树并进行类型检查
设计一个规则引擎
设计一个规则引擎,支持特定的词法,运算符,数据类型和优先级,并且支持基于以上与定义语法的规则表达式的编译和执行。
词法(合法Token)
参数:由字母数字下划线组成,并且不能以数字开头 布尔值 字符串 十进制int 十进制float 预定义运算符:+,-
语法树的执行
对抽象语法树进行后序遍历
实现规则引擎
首先需要安装Docker环境以及安装docker-compose工具,按照这个说得来