规则引擎设计与实现(一) | 青训营

76 阅读2分钟

今天的内容是规则引擎设计与实现,也讲了一些编译原理的相关知识。课前看到这个题目,然后我不知道什么叫做规则引擎,所以去百度搜索了一下,得到的答案是"规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。",感觉这不够具体,我个人理解就是,规则引擎就是一个个的if的语句,判断用户的输入。再形象一点,比如说我要申请信用卡,银行的系统需要先判断我的征信记录是否符合要求,再进行一些具体的工作相关的查询,是否符合银行的要求等,最终反馈一张表给到工作人员。而后随着时间的变更,我要不断更新这个规则,难道次次要改代码?次次要重启服务? 规则引擎就是解决这类问题的工具,把程序里的判断抽离出来,形成一个api ,可以集中进行规则管理,程序只需要送数据到这个api然后就会返回结果。就比较方便进行开发了。

一、本堂课重点内容:

课程主要内容是编译原理的简单介绍,如何设计和实现一个规则引擎 课程举了几个例子是风控场景的应用--打击黑灰产(打击我的😱),然后如果有一个活动他其中的规则也是通过规则引擎去控制,对于流量的清洗也是通过这个规则引擎去实现的。其实就类似于我软件工程里学的一些低耦合的一种措施吧,将业务代码和逻辑进行解耦,提升了业务的稳定性。接下来提到了核心原理。然后学习了如何设计规则引擎

二、详细知识点介绍

1.通过几个案例认识规则引擎

规则引擎的定义

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

传统的代码是这样实现的

image.png 使用规则引擎后

image.png

规则引擎的组成部分如下图所示

image.png 常见的应用场景我在前边已经提到,主要是业务的规则修改,对抗灰黑产,对数据进行分析和清洗

image.png