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

125 阅读2分钟

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

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

一.本课重点

  • 了解规则引擎的组成部分和应用场景。
  • 学习并掌握规则引擎的设计与实现原理。
  • 明确一个规则引擎的设计目标,并完成各部分的设计与实现步骤拆解。
  • 动手实现规则引擎项目,完成预定目标。
  • [课外扩展] 结合其他课程,完成一个在线 规则引擎 服务。
  • 二.课程内容

  • 2.1 数据结构基础

  • 精通常用数据结构:数组、结构体、指针、队列、二叉树
  • 熟练掌握二叉树的各种遍历方式:前中后序遍历,层序遍历,打印二叉树

2.2 Go语言基础

  • 掌握Go语言的基础语法,能读懂项目代码

2.3 编译原理基础

编译原理被誉为"程序员的三大浪漫"之一,

规则引擎的本质呢就是我们自己定义一套语法,然后去解析用这套语法写的表达式,然后根据解析的内容执行表达式。这个过程其实就是编译和执行的过程。

需要自行了解以下的内容

  • 编译的概念:

    • 编译的过程发生了什么?
    • 一般分为哪几个步骤,每个步骤的中间结果是什么?
  • 词法分析:

    • 词法如何表示?| 正则文法
    • 词法分析阶段的输出是什么
    • 词法分析阶段是怎么做的?
    • 词法分析可能会产生什么问题?
    • 如何解决词法分析过程中产生的问题?| 左递归问题怎么解决
  • 语法分析

    • 语法如何表示?上下文无关语法、巴克斯范式怎么理解
    • 语法分析阶段的输出是什么? 一般怎么表示
    • 语法分析有哪些方式?什么是递归下降算法?
  • 抽象语法树

    • 抽象语法树是什么?
    • 抽象语法树如何执行?
  • 类型检查

    • 类型检查怎么做?有哪些方式?
    • 类型检查什么时候做?有什么区别?

三.项目实践

对于新手太难,根据视频运行。

四.个人收获

本次课程收获很多,了解了很多知识。

五.参考文献

字节青训营课程。