規(guī)則引擎學(xué)習(xí)

背景:

使軟件可維護(hù),適應(yīng)業(yè)務(wù)變化不要經(jīng)常改代碼砌们。

在沒(méi)有規(guī)則引擎的時(shí)代巧鸭,有些邏輯比較復(fù)雜的業(yè)務(wù),只有不斷的增添if-else去滿足我們這個(gè)復(fù)雜的業(yè)務(wù)場(chǎng)景撰洗,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)還好荆陆,對(duì)于后面接手的同學(xué)一看到處都是if-else措拇。


類(lèi)型:

一般來(lái)說(shuō)分為下面三類(lèi):

? 低配版:沒(méi)有配置界面,靠業(yè)務(wù)人員編寫(xiě)引擎規(guī)則DSL慎宾,一般存儲(chǔ)在數(shù)據(jù)庫(kù)或者文件中,這種沒(méi)有徹底解放業(yè)務(wù)人員和開(kāi)發(fā)人員的耦合浅悉,但是加快了業(yè)務(wù)代碼的上線速度趟据,以及很容易就能進(jìn)行規(guī)則變更。

? 進(jìn)階版:這個(gè)一般是某種特定的系統(tǒng)术健,我們針對(duì)這種系統(tǒng)設(shè)置一些有針對(duì)性的頁(yè)面汹碱,比如下面是某風(fēng)控系統(tǒng)的截圖,風(fēng)控系統(tǒng)的規(guī)則引擎是相對(duì)來(lái)說(shuō)比較簡(jiǎn)單的荞估,只需要判斷某些參數(shù)是否符合某些條件即可咳促,然后返回固定的值即可。

? 完全版:在進(jìn)階版中規(guī)則引擎只是其中的一個(gè)部件勘伺,一般這種都很難復(fù)用于其他場(chǎng)景跪腹。但是一個(gè)完全版的規(guī)則引擎,追求的超高的通用性飞醉,下面是從一個(gè)商業(yè)的規(guī)則引擎中截圖:


可以看見(jiàn)提供了多種規(guī)則引擎的表達(dá):比如決策集冲茸,決策表,決策樹(shù)等等缅帘,適用于我們很多需要使用規(guī)則引擎的地方轴术,下面暫時(shí)了一下決策樹(shù)的配置,這個(gè)就和我們上面風(fēng)控的配置有點(diǎn)類(lèi)似钦无,只不過(guò)通用性更強(qiáng)逗栽。

講到這里基本上規(guī)則引擎是什么大家基本上心里面有個(gè)大概了,下面我們來(lái)講下有哪些開(kāi)源的規(guī)則引擎失暂。

有哪些規(guī)則引擎

在社區(qū)中開(kāi)源的規(guī)則引擎是比較多的彼宠,說(shuō)明不同的業(yè)務(wù)團(tuán)隊(duì),公司都對(duì)這個(gè)是比較看中的弟塞,但是整體上大的分類(lèi)分為下面幾類(lèi):

? 通過(guò)界面配置的成熟規(guī)則引擎:這種規(guī)則引擎相對(duì)來(lái)說(shuō)就比較重兵志,但是因?yàn)楣δ苋灿胁糠謽I(yè)務(wù)會(huì)選擇這個(gè)宣肚,一般出名的有:drools,urule想罕。

? 基于jvm腳本語(yǔ)言:這種其實(shí)不是一個(gè)成熟的規(guī)則引擎,他應(yīng)該算是規(guī)則引擎中的核心技術(shù),有很多公司比如美團(tuán)按价,他會(huì)覺(jué)得drools這種太重了惭适,然后會(huì)基于一些jvm的腳本語(yǔ)言,去自己開(kāi)發(fā)一個(gè)輕量級(jí)的規(guī)則引擎楼镐,這里比較出名的有癞志,groovy,aviator,qlexpress。

? 基于java代碼的規(guī)則引擎:上面是基于jvm腳本語(yǔ)言去做的框产,會(huì)有一些語(yǔ)法學(xué)習(xí)的成本凄杯,所以就有基于java代碼去做的規(guī)則引擎,比如通過(guò)一些注解實(shí)現(xiàn)抽象的方式去做到規(guī)則的擴(kuò)展秉宿,比較出名的有: easyRules戒突。


成熟的規(guī)則引擎

作為完全版的成熟的規(guī)則引擎,往往可以當(dāng)作sass產(chǎn)品進(jìn)行售賣(mài)描睦,urule再開(kāi)源部分的同時(shí)膊存,也再賣(mài)著自己的高級(jí)功能,drools是一個(gè)純開(kāi)源的產(chǎn)品忱叭,如果想體驗(yàn)這種規(guī)則引擎可以直接去urule.bstek可以體驗(yàn)他的產(chǎn)品隔崎,不需要自行搭建。

作為完全版到底是怎么滿足各種奇奇怪怪的規(guī)則場(chǎng)景呢韵丑?在這些規(guī)則引擎里面都會(huì)分為好幾種規(guī)則設(shè)計(jì)器來(lái)滿足你想要的規(guī)則場(chǎng)景:

? 規(guī)則集:一組普通規(guī)則和循環(huán)規(guī)則構(gòu)成的規(guī)則集合爵卒,是使用頻率最高的一種業(yè)務(wù)規(guī)則實(shí)現(xiàn)方式。一般分為向?qū)剑和ㄟ^(guò)圖形界面構(gòu)成的撵彻;還有腳本式:通過(guò)自定義的DSL語(yǔ)言技潘,類(lèi)似我們下面會(huì)講的jvm腳本規(guī)則引擎一樣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末千康,一起剝皮案震驚了整個(gè)濱河市享幽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拾弃,老刑警劉巖值桩,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異豪椿,居然都是意外死亡奔坟,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)搭盾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咳秉,“玉大人,你說(shuō)我怎么就攤上這事鸯隅±浇ǎ” “怎么了向挖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)炕舵。 經(jīng)常有香客問(wèn)我何之,道長(zhǎng),這世上最難降的妖魔是什么咽筋? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任溶推,我火速辦了婚禮,結(jié)果婚禮上奸攻,老公的妹妹穿的比我還像新娘蒜危。我一直安慰自己,他們只是感情好睹耐,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布辐赞。 她就那樣靜靜地躺著,像睡著了一般疏橄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上略就,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天捎迫,我揣著相機(jī)與錄音,去河邊找鬼表牢。 笑死窄绒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的崔兴。 我是一名探鬼主播彰导,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼敲茄!你這毒婦竟也來(lái)了位谋?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤堰燎,失蹤者是張志新(化名)和其女友劉穎掏父,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體秆剪,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赊淑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仅讽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陶缺。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖洁灵,靈堂內(nèi)的尸體忽然破棺而出饱岸,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布伶贰,位于F島的核電站蛛砰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏黍衙。R本人自食惡果不足惜泥畅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望琅翻。 院中可真熱鬧位仁,春花似錦、人聲如沸方椎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)棠众。三九已至琳疏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闸拿,已是汗流浹背空盼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留新荤,地道東北人揽趾。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像苛骨,于是被迫代替她去往敵國(guó)和親篱瞎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容