这是我参与「第五届青训营 」伴学笔记创作活动的第8天
一、重点内容:
- 本次主要了解规则引擎的组成部分和应用场景、学习并掌握规则引擎的设计与实现原理,最终明确一个规则引擎的设计目标,并完成各部分的设计与实现步骤拆解。
二、详细知识点介绍:
- 什么是规则引擎
-
规则引擎是一种嵌入在应用服务中的组件,可以将灵活多变的业务决策从服务代码中分离出来。通过使用预定义的语义模块来编写业务逻辑规则。在执行时接受数据输入、解释业务规则,并做出决策。规则引擎能大大提高系统的灵活性和扩展性。
-
规则引擎的实现需要在满足大容量、高请求、低延迟的基础上尽可能做到简单易上手。
- 什么是编译
- 编译的过程就是 把某种语言的源程序,在不改变语义的条件下,转换成另一种语言程序(目标语言程序)
3、词法分析
- 词法分析是把源代码字符串转换为词法单元(Token)的这个过程。
- 确定的有限自动机就是一个状态机,它的状态数量是有限的。该状态机在任何一个状态,基于输入的字符,都能做一个确定的状态转换。
- 语法分析
- 词法分析是识别一个个的单词,而语法分析是在词法分析的基础上识别出程序的语法结构,即抽象语法树。该树的每个节点是一个语法单元,这个单元的构成规则就叫语法。
5、 巴克斯范式
- BNF是描述上下文无关理论的一种具体方法。通过BNF可以实现上下文无关文法的具体化、科学化、公式化,是实现代码解析的必要条件。
- BNF本质上就是树形分解。
三、课后个人总结:
- 本次主要了解了规则引擎的相关知识,这些知识对于我来说是相对陌生的,从来没接触过的内容会让人有天然的畏惧感,但是只要认真预习,结合课上讲解,可以对整个内容有个较好的理解。
- 后续时间充裕的话会将课后作业实现和完善。