[ 规则引擎设计与实现 | 青训营笔记 ]
这是我参与「第五届青训营」伴学笔记创作活动的第 六天
一.本课重点
- 了解规则引擎的组成部分和应用场景。
- 学习并掌握规则引擎的设计与实现原理。
- 明确一个规则引擎的设计目标,并完成各部分的设计与实现步骤拆解。
- 动手实现规则引擎项目,完成预定目标。
- [课外扩展] 结合其他课程,完成一个在线 规则引擎 服务。
-
二.课程内容
-
2.1 数据结构基础
- 精通常用数据结构:数组、结构体、指针、队列、二叉树
- 熟练掌握二叉树的各种遍历方式:前中后序遍历,层序遍历,打印二叉树
2.2 Go语言基础
- 掌握Go语言的基础语法,能读懂项目代码
2.3 编译原理基础
编译原理被誉为"程序员的三大浪漫"之一,
规则引擎的本质呢就是我们自己定义一套语法,然后去解析用这套语法写的表达式,然后根据解析的内容执行表达式。这个过程其实就是编译和执行的过程。
需要自行了解以下的内容
-
编译的概念:
- 编译的过程发生了什么?
- 一般分为哪几个步骤,每个步骤的中间结果是什么?
-
词法分析:
- 词法如何表示?| 正则文法
- 词法分析阶段的输出是什么
- 词法分析阶段是怎么做的?
- 词法分析可能会产生什么问题?
- 如何解决词法分析过程中产生的问题?| 左递归问题怎么解决
-
语法分析
- 语法如何表示?上下文无关语法、巴克斯范式怎么理解
- 语法分析阶段的输出是什么? 一般怎么表示
- 语法分析有哪些方式?什么是递归下降算法?
-
抽象语法树
- 抽象语法树是什么?
- 抽象语法树如何执行?
-
类型检查
- 类型检查怎么做?有哪些方式?
- 类型检查什么时候做?有什么区别?
三.项目实践
对于新手太难,根据视频运行。
四.个人收获
本次课程收获很多,了解了很多知识。
五.参考文献
字节青训营课程。