这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天.
规则引擎定义
全称为 业务规则管理系统 ,英文名为 BRMS(即 Business Rule Management System)。规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块(注:领域特定语言)编写业务决策(业务规则)。由用户或开发者在需要时进行配置、管理。 需要注意的是规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。
规则引擎实现了将业务决策从应用程序代码中分离出来,接收数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎其实就是一个输入输出平台,通过接受动态数据流入根据内部的规则得出决策结果的处理器,以抽离业务逻辑保证其独立维护和动态更新。
规则引擎的应用
gengine是一款基于golang和AST(抽象语法树)开发的规则引擎,gengine支持的语法是一种自定义的DSL
gengine于2020年7月由哔哩哔哩(bilibili.com)授权开源
gengine现已应用于B站风控系统、流量投放系统、AB测试、推荐平台系统等多个业务场景
你也可以将gengine应用于golang应用的任何需要规则或指标支持的业务场景
规则引擎的应用背景
企业级管理者对企业IT系统的开发有着如下的要求:
1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。
2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。
3.为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。