当前位置: 首页>編程日記>正文

【Urule源码解析1】开源可视化规则引擎

【Urule源码解析1】开源可视化规则引擎

Urule介绍

由于工作需要,我参考了许多优秀JAVA实现的开源规则引擎框架,例如Drools等,但是在茫茫人海中我发现了一个可视化配置基于RETE算法的规则引擎,它的名字叫Urule,下面摘选自Urule官方Wiki:

URule是一款基于RETE算法纯Java的规则引擎产品。在URule当中提供了向导式规则集、脚本式规则集、决策表、
交叉决策表(PRO版)、决策树、评分卡及决策流共七种类型的规则定义方式,配合基于WEB的设计器,可快速实现
规则的定义、维护与发布。
复制代码

Github项目地址
官方Wiki地址

使用场景

有一天,小叶同学在撸着代码,产品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自己配置就好啦

下一章预告:规则引擎与RETE算法


https://www.fengoutiyan.com/post/15289.html

相关文章:

  • vue 可视化
  • vue源码解析
  • 可视化
  • 可视化规则引擎 开源
  • vue实例完整项目源码
  • 可视化网站源码
  • vue源码下载
  • 可视化开源库
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機