国产精品美女久久久久aⅴI亚洲成人高清在线I91九色视频导航I国产精品在线看I午夜视频免费在线观看I亚洲精品99I中文字幕在线有码I成人黄色片免费

行業(yè)動態(tài)

.Net Core 環(huán)境下構(gòu)建強大且易用的規(guī)則引擎

2018-06-11 08:43:00 小沐管家 0

1. 引言

1.1 為什么需要規(guī)則引擎

在業(yè)務(wù)的早期時代,也許使用硬編碼或者邏輯判斷就可以滿足要求。但隨著業(yè)務(wù)的發(fā)展,越來越多的問題會暴露出來:

  • 邏輯復(fù)雜度帶來的編碼挑戰(zhàn),需求變更時改變邏輯可能會引起災(zāi)難

  • 重復(fù)性的需求必須可重用,否則必須重復(fù)性編碼

  • 運行期間無法即時修改規(guī)則,但重新部署可能會帶來其他問題

  • 上線前的測試變得繁瑣且不可控,必須花大量的人力和時間去測試

這些困境在『 小明歷險記:規(guī)則引擎 drools 教程一』 一文中可以體會一番,一開始只是簡單的根據(jù)購物金額來發(fā)放積分,運行期間又要更改為更多的規(guī)則層次,如果不及時引入對應(yīng)的規(guī)范化處理機制,開發(fā)人員將慢慢墜入無止盡的業(yè)務(wù)深淵。對此,聰明的做法是在系統(tǒng)中引入規(guī)則引擎,對業(yè)務(wù)操作員要提供盡量簡單的操作頁面來配置規(guī)則,規(guī)則引擎和配置盡量不要耦合到一塊。

1.2 .Net Core 環(huán)境下的選擇 -- Nrules

目前最流行的規(guī)則引擎應(yīng)該是Drools, 用 Java 語言編寫的開放源碼規(guī)則引擎,使用 Rete 算法對所編寫的規(guī)則求值,其操作流程如下:

沐歌環(huán)保

對于 .Net 應(yīng)用來說,可以通過 Kie 組件提供的 Rest 接口調(diào)用規(guī)則引擎運算。然而其過于龐大,僅僅只是需要規(guī)則引擎計算核心的部分。對此,查找了 .Net 中開源的規(guī)則引擎,發(fā)現(xiàn)只有同樣實現(xiàn) Rete 算法的 Nrules 滿足要求(支持 .Net Core,運行時加載規(guī)則引擎)。

注:本文參考借鑒了美團技術(shù)團隊 從 0 到 1:構(gòu)建強大且易用的規(guī)則引擎 一文的設(shè)計思路,對 Drools 從入門到放棄。

2. Nrules 實戰(zhàn) -- 電商促銷活動規(guī)則引擎設(shè)計

2.1 了解 Nrules

NRules 是基于 Rete 匹配算法的.NET 生產(chǎn)規(guī)則引擎,基于.NET Standard ,支持 4.5+ 的應(yīng)用,提供 流式聲明規(guī)則、運行時構(gòu)建規(guī)則、專門的規(guī)則語言(開發(fā)中,不推薦使用到生產(chǎn),基于.Net 4.5 而不是 .NETStandard )。
其計算機制也與其他規(guī)則引擎大同小異:
沐歌環(huán)保

2.2 設(shè)計規(guī)則配置

前文提到 對業(yè)務(wù)操作員要提供盡量簡單的操作頁面來配置規(guī)則 ,所以我們定義促銷活動的規(guī)則配置就要盡量簡單。

沐歌環(huán)保

在設(shè)計模型時,我們必須先參考現(xiàn)實生活中遇到的電商促銷活動,大致可以想到有這么幾種活動類型:滿減促銷、單品促銷、套裝促銷、贈品促銷、滿贈促銷、多買優(yōu)惠促銷、定金促銷等。
在這里,我選擇對多買優(yōu)惠促銷做分析,多買促銷優(yōu)惠即所謂的階梯打折,如買一件9折,買兩件8折,其模型大致如下:

沐歌環(huán)保

這里為了簡化設(shè)計,設(shè)計的模型并不會去約束平臺、活動范圍、會員等級等,僅僅約束了使用的產(chǎn)品 id 范圍。為了匹配現(xiàn)實中可能出現(xiàn)的組合優(yōu)惠(類似滿減活動后還可以使用優(yōu)惠券等)現(xiàn)象和相反的獨斥現(xiàn)象(如該商品參與xx活動后不支持X券),設(shè)置了一個字段來判斷是否可以組合優(yōu)惠,也可以理解為所有活動都為組合優(yōu)惠,只是有些組合優(yōu)惠只有一個促銷活動。

注:想了解更多關(guān)于電商促銷系統(tǒng)設(shè)計可參考腦圖

2.3 規(guī)則配置轉(zhuǎn)換

為了實現(xiàn) 規(guī)則引擎和配置盡量不要耦合到一塊,必須有中間層對規(guī)則配置進行轉(zhuǎn)換為 Nrules 能夠接受的規(guī)則描述。聯(lián)系前文的計算機制,我們可以得到這樣一個描述模型:

沐歌環(huán)保

由于 Nrules 支持流式聲明,所以約束條件和產(chǎn)生的結(jié)果都可以用 LambdaExpression 表達式實現(xiàn)?,F(xiàn)在我們需要把階梯打折的配置轉(zhuǎn)換成規(guī)則描述,那我們需要先分析一下。假設(shè)滿一件9折,滿兩件8折,滿三件7折,那我們可以將其分解為:

  • 大于等于三件打 7 折

  • 大于等于兩件且小于三件打 8 折

  • 大于等于一件且小于兩件 9 折

基于此分析,我們可以看出,只有第一個最多的數(shù)量規(guī)則是不一樣的,其他規(guī)則都是比前一個規(guī)則的數(shù)量小且大于等于當前規(guī)則的數(shù)量,那么我們可以這樣轉(zhuǎn)換我們的規(guī)則配置:

沐歌環(huán)保

2.4 生成規(guī)則集合

在 Nrules 的 wiki 中,為了實現(xiàn)運行時加載規(guī)則引擎,我們需要引入實現(xiàn) IRuleRepository ,所以我們需要將描述模型轉(zhuǎn)換成 Nrules 中的 RuleSet:

沐歌環(huán)保

2.5 執(zhí)行規(guī)則引擎

做了轉(zhuǎn)換處理僅僅是第一步,我們還必須創(chuàng)建一個規(guī)則引擎的處理會話,并把相關(guān)的事實對象(fact)傳遞到會話,執(zhí)行觸發(fā)的代碼,相關(guān)對象發(fā)生了變化,其簡單代碼如下:

沐歌環(huán)保

2.6 應(yīng)用場景示例

我們假設(shè)有這么一個應(yīng)用入口:傳入一個購物車(這里等價于訂單)id,獲取其可以參加的促銷活動,返回對應(yīng)活動優(yōu)惠后的結(jié)果,并按總價的最低依次升序,那么可以這么寫:

沐歌環(huán)保

假設(shè)這么一個購物車id,買一件時最優(yōu)惠是參加 A 活動,買兩件時最優(yōu)惠是參加 B 和 C 活動,那么其效果圖可能如下:

沐歌環(huán)保

3. 結(jié)語

本文只是對規(guī)則引擎及 Nrules 的簡單介紹及應(yīng)用,過程中隱藏了很多細節(jié)。在體會到規(guī)則引擎的強大的同時,還必須指出其局限性,規(guī)則引擎同樣不是銀彈,必須結(jié)合實際出發(fā)。

擴展閱讀:Martin Fowler:應(yīng)該使用規(guī)則引擎嗎?

原文地址: https://www.cnblogs.com/chenug/p/9160397.html


? av网站免费播放 | 日韩欧美三级 | 久久精品视频7 | 老牛影视一区二区三区 | www.成人av.com| 免费久久久久 | 国产精品水嫩水嫩 | 黄色香蕉网站 | 日韩精品第二页 | 精品无码人妻一区二区免费蜜桃 | 亚洲一区二区观看播放 | 老色鬼网站 | 一级片aaaa | 2021天天操| 日韩在线电影一区二区 | 国产成人在线一区 | 亚洲熟女一区 | 欧美日韩国产在线播放 | 久久久久久久久久久久国产精品 | 六月婷婷综合网 | 免费av动漫 | 日韩国产第一页 | 免费观看一区二区三区毛片 | 欧美三级午夜理伦三级老人 | 一区二区三区视频在线免费观看 | 欧美 亚洲 另类 激情 另类 | 精品视频一二区 | 国产小视频免费 | 免费大片黄在线观看视频网站 | 黄色免费在线视频 | 亚洲欧美综合精品久久成人 | 亚洲一区二区三区久久久成人动漫 | 色屁屁一区二区三区视频 | 国产一级片免费视频 | 99热在线这里只有精品 | 无套内谢少妇露脸 | 性高潮久久久久久久久久 | 毛片内射 | 亚洲品质自拍视频网站 | 午夜免费毛片 | 国内露脸中年夫妇交换 | 麻豆乱码国产一区二区三区 | 黄网在线免费观看 | 色哟哟网站入口 | 成年丰满熟妇午夜免费视频 | 国产性70yerg老太 | 日本乱码视频 | 欧美成人一区二区三区 | 国产午夜精品视频 | 69视频在线 | 国产成人精品一区二区三区在线 | 超碰免费观看 | 国产综合99 | 亚洲精品国产精品国自 | 色姑娘综合 | 久久精品国产亚洲AV无码麻豆 | 成人一区二区三区在线观看 | 国产精品久久福利 | 午夜影音 | 四虎4hu | 天美麻花果冻视频大全英文版 | 天堂中文资源在线 | 国产在线导航 | 九九人人 | www欧美日韩 | 免费观看成人 | 成人免费大片黄在线播放 | 亚洲一区91 | 亚洲干综合 | 久久黄视频 | 亚洲一级精品 | 亚洲欧美日本韩国 | 欧美香蕉网 | 欧美精品免费播放 | 欧洲精品无码一区二区 | 亚洲精品中文字幕在线观看 | 黑森林福利视频导航 | 成人一级片视频 | 日本综合久久 | 毛片久久久久久久 | 成为性瘾网黄的yy对象后 | 麻豆www| 亚洲少妇毛片 | 日韩精品在线一区二区 | 嫩草在线视频 | a极黄色片 | 在线免费看污视频 | 在线观看av一区二区 | 操操操网 | 国产亚洲精品久久久久久久久动漫 | 久草视频在线播放 | 国产精品一区二区在线 | 国产精品成人国产乱一区 | 神马久久久久久 | 永久免费精品影视网站 | av在线不卡一区 | 99热偷拍| 无码av免费毛片一区二区 | 国模私拍在线观看 | xxxxx毛片| 制服丝袜在线视频 | 爆操网站 | 精品国产黄色片 | 国产视频一区二 | www.插插插.com | 久久久精品日韩 | 日本大尺度吃奶做爰视频 | 亚洲美女黄色片 | 黄色片在哪里看 | 国产精品剧情av | 亚洲av成人精品一区二区三区在线播放 | 国产亚洲av在线 | 精品一区二区三区四区五区六区 | 91免费影片 | 国产精品30p| 综合色久| 亚洲熟妇无码av在线播放 | 亚洲视频国产 | 麻豆爱爱 | 亚洲 欧美 激情 小说 另类 | 天天搞天天搞 | 欧美xx在线 | 久久观看最新视频 | 免费看毛片的网站 | 成人伊人 | 俺去操 | av永久在线| 国产成年妇视频 | 婷婷午夜精品久久久久久性色av | 国产精品一级片在线观看 | 麻豆91茄子在线观看 | 亚洲图片88 | 日日爱影视| 男同av在线观看一区二区三区 | 欧美一区二区三区的 | 国产主播喷水 | 中文字幕在线二区 | 久久久久久久久福利 | 蜜桃av在线免费观看 | 落日余晖| 男女午夜网站 | 色综合天天综合综合国产 | 欧洲一级黄 | www.男人天堂 | 潮见百合子 | 综合色99| 美丽的小蜜桃2:美丽人生 | 黄色天天影视 | 中文字幕乱码一区 | 夜夜躁狠狠躁日日躁av | 国产精品久久久免费观看 | 天堂精品一区二区三区 | 国产日韩欧美中文 | av大片网站 | 亚洲一区二区影院 | 亚洲av无码国产精品色午夜 | 国产乱码精品 | 熟女性饥渴一区二区三区 | 国产色自拍| 少妇无内裤下蹲露大唇视频 | 狠狠干欧美 | 福利二区三区 | 爱爱视频一区 | 国产精品36p | 97视频在线观看免费高清完整版在线观看 | 日韩视频在线观看一区二区三区 | 国产在线精品成人欧美 | 6080亚洲精品一区二区 | 超碰免费在线 | 一出一进一爽一粗一大视频 | 九九激情网 | 中文字幕在线看高清电影 | 狠狠躁夜夜躁人人爽天天高潮 | 久久久久久久久久综合 | 最新国产视频 | 久久精品国产亚洲AV成人雅虎 | 成人网站免费观看 | 91成人天堂久久成人 | 99成人在线 | 日韩中字在线 | 婷婷精品视频 | 青青草华人在线 | 国产爽爽爽 | 国产日韩欧美中文字幕 | 99久久久久 | 天天色综合1 | 丰满岳乱妇国产精品一区 | 一级成人av | 中文字幕日韩一区二区三区不卡 | 国产精品一区二区麻豆 | 免费一区| 精品人妻一区二区三区麻豆91 | av免费观看网站 | 秋霞7777鲁丝伊人久久影院 | 色哟哟一区 | 日韩精品一区二区三区在线 | 日韩a∨ | 国产伦精品一区二区三 | 国产中文字幕乱人伦在线观看 | 日本人妖xxxx | 日本女人黄色 | 欧美黄色免费在线观看 | 天天色综网| 热99精品视频 | 人人爽爽爽 | 日本性久久 | 亚洲偷偷| 成人激情五月天 | 99re免费视频精品全部 | 国产毛片不卡 | 久久国产欧美日韩精品 | 欧洲一区在线观看 | 亚洲欧美小视频 | 日本激情视频网站 | 破处视频在线观看 | 青青草激情视频 | 色呦呦在线视频 | 东京热加勒比无码少妇 | 国产一区不卡 | 人人草网站 | 免费三级黄 | 欧美二级片 | 欧美精品久 | 男女在线观看视频 | 国产一区二区伦理 | 亚洲精品欧美精品 | 成人女同在线观看 | 伊人久久精品 | 自拍视频在线观看 | 日韩成人无码影院 | 黄色自拍视频 | 超碰在线人人干 | 老女人黄色片 | 尤物视频在线看 | 色香五月 | 一区在线免费观看 | 亚洲精品乱码久久久久久久 | 岛国av在线 | 青青草国产在线视频 | 国产黄大片在线观看画质优化 | 免费在线看污 | 亚洲人成无码网站久久99热国产 | 欧美网| 精品视频网 | 久久精品视 | 在线看国产视频 | 大地资源影视在线播放观看高清视频 | 澳门一级黄色片 | 99爱视频在线观看 | 国产成人宗合 | 欧美大片高清免费观看 | 高潮毛片7777777毛片 | 竹菊影视一区二区三区 | 国产精品美女久久久 | 在线观看免费视频一区二区 | 欧美伊人影院 | 法国少妇愉情理伦片 | 91一区在线观看 | 中文字幕avav | 亚洲蜜桃精久久久久久久久久久久 | 青青免费在线视频 | 一级不卡 | 亚洲色图插插插 | 操久久 | 国产av不卡一区二区 | 在线观看亚洲精品 | 光棍福利视频 | av五月天在线 | 色香影院 | 久久久久久久久久一级 | 97黄色网 | 成人短视频在线播放 | 日韩在线播放av | 亚洲看片网站 | 特黄特色大片免费视频大全 | 日韩一级黄色片 | 午夜免费片 | 国内精品偷拍 | 黄色一级黄色片 | 91天堂在线观看 | 黄免费在线观看 | 97caop| 欧美三级不卡 | 99久久久成人国产精品 | 日韩久久久久久久久久 | 狠狠爱夜夜操 | www,av在线 | 国产二区三区视频 | 狠狠一区二区 | 国产一区二区伦理 | 日韩欧美高清在线视频 | 五月天久久婷婷 | 三级视频黄色 | 免费av动漫 | 91网国产 | 免费美女视频网站 | 一级黄色片免费 | 欧美顶级少妇做爰 | jizz欧美大全 | 黄色在线免费观看 | 日毛片 | 蝌蚪网在线视频 | 欧美三级午夜理伦三级小说 | 久久亚洲av无码精品色午夜麻豆 | 亚洲v国产 | 成人在线观看国产 | 精品国产乱码久久久久久88av | 成人特级毛片 | 你懂的亚洲 | 国产91丝袜在线播放九色 | 国产视频一区二区三区在线 | 丁香婷婷在线观看 | 亚洲三级理论 | 精品少妇久久 | 深夜免费福利视频 | 精品久久久久久久久久久久 | av剧情在线| 欧美不卡一区二区三区 | 久热这里只有 | 青草草在线 | 日本美女高潮 | 8x8ⅹ8成人免费视频观看 | 天天艹日日艹 | 天天干在线观看 | 男女ss视频 | 精品午夜一区二区三区在线观看 | 中文字幕在线观看视频www | 日本精品久久久久中文字幕 | 黄色一级片a | 欧美黄色性生活 | 污版视频在线观看 | 手机av免费 | 久久久久黄色片 | 人妖被c到高潮欧美gay | 成年人网站黄色 | 以女性视角写的高h爽文 | 久久精品国产亚洲av无码娇色 | av导航在线观看 | 小情侣高清国产在线播放 | 国产一级二级在线 | 久久小视频 | 日韩在线精品视频 | 免费国产在线视频 | 少妇高潮惨叫久久久久 |