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

56 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第7天,今天我重温了规则引擎设计与实现方面的相关知识。规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,然后使用预定义的语义模块编写业务决策,接受数据输入、解释业务规则,然后根据业务规则做出业务决策。 规则引擎可以解决开发人员重复编码的问题,业务决策与服务本身解耦,提高服务的可维护性,缩短开发路径,提高效率。组成部分包括数据输入、规则理解和规则执行。该部分的应用场景主要是在三个方面,分别是风控对抗、活动策略运营和数据分析和清洗。 然后我学习了有关编译原理基本概念等知识,其中词法分析是把源代码字符串转换为词法单元的这个过程,通过有限自动机来识别词法单元,有限自动机是一个状态机,它的状态数量是有限的,该状态机在任何一个状态,基于输入的字符,都能做一个确定的状态转换。语法分析是在词法分析的基础上,识别表达式的语法结构的过程,其中表达式的语法结构可以用树来表示,其每个节点是一个语法单元,这个单元的构成规则就叫语法,每个节点还可以有下级节点。 类型检查包括类型综合和编译时检查&运行时检查,其中类型检查可以发生在表达式的编译阶段,即在构造语法树的阶段;也可以发生在执行时的阶段。在编译时,需要提前声明参数的类型,在构建语法树过程中进行类型检查;在执行时,可以根据执行时的参数输入的值类型,在执行过程中进行类型检查。今天学到了很多知识,受益匪浅。