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

114 阅读2分钟

规则引擎设计与实现

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

一、本堂课重点内容:

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

重点

  • 规则引擎的设计 。明确设计目标、完成步骤拆解、完成各部分状态机的详细设计
  • 规则引擎的实现。基于项目工程完成词法分析、语法分析、抽象语法树的执行功能

难点

  • 规则引擎的核心原理(理论)。词法分析、语法分析、类型检查、语法树执行

本堂课的知识要点有哪些?

  1. 认识规则引擎
  2. 编译原理基本概念
  3. 设计一个规则引擎
  4. 规则引擎实现

二、详细知识点介绍:

  1. 什么是规则引擎
    • 规则引擎定义
    • 组成部分
    • 应用场景
      • 风控对抗
      • 活动策略运营
      • 数据分析和清洗
  2. 编译原理基本概念
    • 词法分析
    • 语法分析
    • 抽象语法树
    • 类型检查
  3. 设计一个规则引擎
    • 设计目标
    • 语法和词法
    • 优先级和语法书
  4. 实现规则引擎

本堂课介绍了哪些知识点?

  • 编译的概念:

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

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

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

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

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

三、实践练习例子:

项目地址:github.com/qimengxingy…

有什么实践举例帮助理解知识点?

没有,完全听不懂

四、课后个人总结:

本章有什么知识点不容易掌握?

都掌握不了

什么地方容易与其他内容混淆?