规则引擎go

什么是规则引擎

嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。

为什么需要规则引擎

作为开发人员会遇到需求变动的情况,比如

if a >b then c

改成 if a < b then c

又要改成 if a <= b then c

众所周知这是一个很头疼的事情,因为代码是写死的,改动需要改代码,又要上线。所以就需要有一个解决方案,把这块代码逻辑当成配置一样,可以随意配置,然后程序又可以把这个配置当代码来执行。

选型

由于后端使用golang,一般规则引擎都是要侵入代码的, 所以理所当然的选用go相关的技术组件。所以这里选用的gengine,同时在github的star也是挺多的。

gengine简介

  • gengine是一款基于golang和AST(抽象语法树)开发的规则引擎,gengine支持的语法是一种自定义的DSL

  • gengine于2020年7月由哔哩哔哩(bilibili.com)授权开源

  • gengine现已应用于B站风控系统、流量投放系统、AB测试、推荐平台系统等多个业务场景

  • 你也可以将gengine应用于golang应用的任何需要规则或指标支持的业务场景

https://github.com/bilibili/gengine/wiki/%E8%AF%AD%E6%B3%95

下面还是列出一些比较:

对比 drools gengine
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小卒曹阿瞒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值