規(guī)則引擎

什么是規(guī)則引擎?

所謂的規(guī)則引擎就是一組規(guī)則加上一組動(dòng)作, 當(dāng)某種規(guī)則被滿(mǎn)足后觸發(fā)某個(gè)動(dòng)作

業(yè)務(wù)痛點(diǎn)

多變的需求

產(chǎn)品的需求千變?nèi)f化,代碼需要不斷的修改

復(fù)雜的業(yè)務(wù)邏輯

由于需求和業(yè)務(wù)的復(fù)雜性,代碼中很可能會(huì)出現(xiàn)層層嵌套的if else語(yǔ)句, 每次修改代碼,都要仔細(xì)閱讀上下文, 所有的if else都要考慮,這顯然會(huì)增加開(kāi)發(fā)成本, 同時(shí)也很容易出錯(cuò)

臨時(shí)修改業(yè)務(wù)邏輯

如果產(chǎn)品需要臨時(shí)修改業(yè)務(wù)邏輯, 比如某一天使用一種特殊的業(yè)務(wù)邏輯, 之后又恢復(fù)正常, 沒(méi)有規(guī)則引擎的話(huà), 就需要進(jìn)行兩次發(fā)布, 大家都知道, 發(fā)布的成本是很高的, 需要 stop the world.

緊急修改業(yè)務(wù)邏輯

如果線(xiàn)上出現(xiàn)一些預(yù)想之外的場(chǎng)景, 需要緊急修改業(yè)務(wù)邏輯, 那么此時(shí)就需要進(jìn)行一次額外的發(fā)布, 對(duì)于大型項(xiàng)目的發(fā)布可能持續(xù)數(shù)個(gè)小時(shí), 期間無(wú)法對(duì)外提供服務(wù)

機(jī)器學(xué)習(xí), 動(dòng)態(tài)規(guī)則

假如我們的業(yè)務(wù)規(guī)則, 是通過(guò)機(jī)器學(xué)習(xí)來(lái)制定的, 支持動(dòng)態(tài)的調(diào)整規(guī)則, 那么硬編碼的方式顯然是不適合的

使用規(guī)則引擎解耦業(yè)務(wù)代碼

主要目的是將if else 從業(yè)務(wù)代碼中解耦出來(lái).

業(yè)務(wù)代碼中少不了if else語(yǔ)句, 當(dāng)業(yè)務(wù)簡(jiǎn)單固定的時(shí)候, 使用if else沒(méi)有任何問(wèn)題,如下所示:

        if(a==0){
            action1();
        }

但是如果if語(yǔ)句層層嵌套的話(huà), 會(huì)讓業(yè)務(wù)邏輯很難看懂, 后面接手的開(kāi)發(fā)人員都不敢改這部分代碼,如下所示:

        if (a == 0) {
            action1();
        } else {
            if (b == 1) {
                action2();
            } else {
                if (c==3){
                    if (d==4){
                        action3();
                    }
                }
            }
        }

大家看到這部分代碼估計(jì)會(huì)想吐血, 即使是自己寫(xiě)的, 也會(huì)有種看不懂的感覺(jué), 當(dāng)我們引入規(guī)則引擎的時(shí)候, 就會(huì)變成下面這個(gè)樣子:

規(guī)則引擎.png

這樣通過(guò)規(guī)則引擎, 將規(guī)則抽離出來(lái), 這種規(guī)則就比層層嵌套的if else顯得更加直觀, 項(xiàng)目代碼的可讀性和可維護(hù)性將會(huì)大大提高

規(guī)則引擎適用的場(chǎng)景

  1. 積分規(guī)則

  2. 打碼平臺(tái)選擇

  3. 運(yùn)營(yíng)商資費(fèi)套餐

  4. 工資計(jì)算

  5. 績(jī)效指標(biāo)

  6. 為訂單選取最優(yōu)優(yōu)惠券

  7. 風(fēng)險(xiǎn)控制

  8. 預(yù)警系統(tǒng)

場(chǎng)景的主要特征, 本身業(yè)務(wù)邏輯的分支比較多, 錯(cuò)綜復(fù)雜, 并且這些規(guī)則在未來(lái)是可能或者很可能改變的, 引入規(guī)則引擎之后,可以通過(guò)修改規(guī)則來(lái)修改業(yè)務(wù)邏輯, 這會(huì)大大降低業(yè)務(wù)代碼的復(fù)雜性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌龙助,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件实辑,死亡現(xiàn)場(chǎng)離奇詭異尘奏,居然都是意外死亡马昨,警方通過(guò)查閱死者的電腦和手機(jī)狠裹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)虽界,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人涛菠,你說(shuō)我怎么就攤上這事莉御∑餐蹋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵礁叔,是天一觀的道長(zhǎng)牍颈。 經(jīng)常有香客問(wèn)我,道長(zhǎng)晴圾,這世上最難降的妖魔是什么颂砸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮死姚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勤篮。我一直安慰自己都毒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布碰缔。 她就那樣靜靜地躺著账劲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪金抡。 梳的紋絲不亂的頭發(fā)上瀑焦,一...
    開(kāi)封第一講書(shū)人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音梗肝,去河邊找鬼榛瓮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛巫击,可吹牛的內(nèi)容都是我干的禀晓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼坝锰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼粹懒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起顷级,我...
    開(kāi)封第一講書(shū)人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凫乖,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后弓颈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體帽芽,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年恨豁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嚣镜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡橘蜜,死狀恐怖菊匿,靈堂內(nèi)的尸體忽然破棺而出付呕,到底是詐尸還是另有隱情,我是刑警寧澤跌捆,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布徽职,位于F島的核電站,受9級(jí)特大地震影響佩厚,放射性物質(zhì)發(fā)生泄漏姆钉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一抄瓦、第九天 我趴在偏房一處隱蔽的房頂上張望潮瓶。 院中可真熱鬧,春花似錦钙姊、人聲如沸毯辅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)思恐。三九已至,卻和暖如春膊毁,著一層夾襖步出監(jiān)牢的瞬間胀莹,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工婚温, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留描焰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓缭召,卻偏偏與公主長(zhǎng)得像栈顷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嵌巷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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