Urule介绍
由于工作需要,我参考了许多优秀JAVA实现的开源规则引擎框架,例如Drools等,但是在茫茫人海中我发现了一个可视化配置基于RETE算法的规则引擎,它的名字叫Urule,下面摘选自Urule官方Wiki:
URule是一款基于RETE算法纯Java的规则引擎产品。在URule当中提供了向导式规则集、脚本式规则集、决策表、
交叉决策表(PRO版)、决策树、评分卡及决策流共七种类型的规则定义方式,配合基于WEB的设计器,可快速实现
规则的定义、维护与发布。
使用场景
有一天,小叶同学在撸着代码,产品MM找到小叶同学,评审一个每日登陆活动的需求,需求大概是这样的:
-5级以下用户登陆送5元红包
-5级以上用户登陆送10元红包
小叶同学一看,So easy!两行代码敲下去就提测上线了:
//登陆事件触发代码
if (user.getLevel() <= 5) {
//发放5元红包
rewardGenerator.send("5元红包");
} else {
//发放10元红包
rewardGenerator.send("10元红包");
}
过了一天,运营GG找产品MM反馈说活动太火爆,被褥羊毛太严重了,要修改一下规则:
-用户必须实名认证
-5级以下用户登陆送3元红包
-5级以上用户登陆送7元红包
小叶同学沉着脸改完逻辑:
//没有实名认证不给奖励!!!
if (!user.isRealNameAuth()) {
return;
}
if (user.getLevel() <= 5) {
//发放3元红包
rewardGenerator.send("3元红包");
} else {
//发放7元红包
rewardGenerator.send("7元红包");
}
再过了一周,运营GG找到产品MM说玩法太单一,没有达到活动效果,要增加活动的可玩性,需求又改成了这样:
-用户必须实名认证
-5级以下用户
-登陆送3元红包;
-每日分享文章到朋友圈送1次抽奖机会;
-论坛回帖15字以上超过10次赠送50元满减券;
-5级以上用户
-登录送7元红包;
-每日分享文章到朋友圈送2次抽奖机会;
-论坛签到送1次抽奖机会;
-论坛回帖1字以上赠送100元满减券;
刚拿到PRD的小叶同学的表情是这样的(当时心想的应该是那么多if else怎么嵌套):
于是小叶同学开始百度有没有运营GG能能够自己配置生成相关规则的一些框架什么的,还真的有!它大概长这样:
(决策集形态)
也可以长这样:
(决策树形态)
甚至可以这样玩(用来算分数简直不要太爽):
(评分卡形态)
上面三种形态只是Urule的冰山一角,重要的是可视化配置有木有!比写死代码舒服多了!解放程序员双手的利器(当然还是得看场合和需求滴)
于是小叶同学二话不说把Urule整合进了自己的项目中,按照需求配置了一个一条规则树:
Urule感染到小叶同学的是,里面的动作全部可以自定义,比如上图,业务场景是用户登录、分享等事件MQ触发规则校验,但是有一部分数据可能不从MQ传递过来,那么想要拿到用户的一些特殊数据,咱们可以调HTTP接口啊!!比如它自带的一些动作,花样百出,大部分满足你想要干的事。
事成之后,小叶同学赶紧把Urule撸上线,那么以后的规则就由运营GG自己配置就好啦
今天的文章【Urule介绍】开源可视化规则引擎分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/17217.html