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

116 阅读2分钟

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

一、重点内容:

  • 本次主要了解规则引擎的组成部分和应用场景、学习并掌握规则引擎的设计与实现原理,最终明确一个规则引擎的设计目标,并完成各部分的设计与实现步骤拆解。

二、详细知识点介绍:

  1. 什么是规则引擎
  • 规则引擎是一种嵌入在应用服务中的组件,可以将灵活多变的业务决策从服务代码中分离出来。通过使用预定义的语义模块来编写业务逻辑规则。在执行时接受数据输入、解释业务规则,并做出决策。规则引擎能大大提高系统的灵活性和扩展性。

  • 规则引擎的实现需要在满足大容量、高请求、低延迟的基础上尽可能做到简单易上手。

  1. 什么是编译
  • 编译的过程就是 把某种语言的源程序,在不改变语义的条件下,转换成另一种语言程序(目标语言程序)

image.png

3、词法分析

  • 词法分析是把源代码字符串转换为词法单元(Token)的这个过程。

image.png

  • 确定的有限自动机就是一个状态机,它的状态数量是有限的。该状态机在任何一个状态,基于输入的字符,都能做一个确定的状态转换。
  1. 语法分析
  • 词法分析是识别一个个的单词,而语法分析是在词法分析的基础上识别出程序的语法结构,即抽象语法树。该树的每个节点是一个语法单元,这个单元的构成规则就叫语法。

5、 巴克斯范式

  • BNF是描述上下文无关理论的一种具体方法。通过BNF可以实现上下文无关文法的具体化、科学化、公式化,是实现代码解析的必要条件。
  • BNF本质上就是树形分解。

三、课后个人总结:

  • 本次主要了解了规则引擎的相关知识,这些知识对于我来说是相对陌生的,从来没接触过的内容会让人有天然的畏惧感,但是只要认真预习,结合课上讲解,可以对整个内容有个较好的理解。
  • 后续时间充裕的话会将课后作业实现和完善。