go学习 | 青训营笔记

95 阅读2分钟

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

本课堂知识点总结

本次课程主要知识点

规则引擎设计与实现
  1. 理解规则引擎的组成部分及应用场景
  2. 理解规则引擎的核心原理-编译原理的相关概念
  3. 设计并实现一个规则引擎-YouEngine
  4. 结合之前所学课程,实现一个Web版规则引擎(自行实现)

本次课程内容

规则引擎
  • 定义:一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语句模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。

image.png

image.png

  • 作用:解决开发人员重复编码的问题,业务决策与服务本身解耦,提高服务的可维护性,缩短开发路径,提高效率。
  • 组成:数据输入、规则理解、规则执行
  • 应用场景:风控对抗、活动策略运营、数据分析和清洗
编译原理基本概念
  • 词法分析:把源代码字符串转换为词法单元的过程
  • 语法分析:在词法分析的基础上,识别表达式的语法结构的过程
  • 类型检查:类型综合-根据子表达式的类型构造出父表达式的类型;编译时检查&运行时检查=在表达式的编译阶段或执行阶段进行检查
  • 设计目标:设计一个规则引擎,支持特定的词法、运算符、数据类型和优先级,并支持基于预定义语法的规则表达式的编译和执行
  • 语法树执行与类型检查:预定定义好每种操作符的执行逻辑,对抽象语法树进行后续遍历执行;类型检查方法为在每一个节点的左右子节点执行完成后,分别校验左右子节点。
实现规则引擎

总结:通过对规则实现引擎代码进行分解并讲解,了解了规则引擎的实现机制

总结

本次课程探究了规则引擎的由来、优点及应用场景,简单了解了规则引擎的组成和实现原理,并对编译原理的基本概念进行了介绍,设计并实现了一个规则引擎。