規則引擎調研及初步使用

2023-06-20 12:01:05

一、產生的背景

生產過程中,線上的業務規則內嵌在系統的各處程式碼中,每次策略的調整都需要更新線上系統,進行從需求->設計->編碼->測試->上線這種長週期的流程,滿足不了業務規則的快速變化以及低成本的更新試錯迭代。

因此需要有一種解決方案將商業決策邏輯和應用開發者的技術決策分離開,在系統執行時能去更新管理業務規則。

規則引擎(業務規則管理系統,英文名為BRMS(即Business Rule Management System))正是這樣的解決方案。

二、實際業務場景:

一個小例子: 假如我們有個業務場景,當客戶的積分位於一個區間A時,我們給予他一個頭銜a,當一個客戶的積分位於區間B時,我們給予他一個頭銜b,當客戶的積分位於區間C時,我們給予他一個 頭銜c。如果我們使用if-else-then來寫,是可以實現的,但是這裡存在一個問題:規則定義和程式碼耦合在一起了。如果我們改變規則,把區間A,B,C 改成D,E,F,又或是將規則增加,從3組變為100組,那麼我們改程式碼實在是太麻煩了。這時候規則引擎就派上用場了,我們希望把規則和程式碼解耦,形成一個規則引擎,以適應複雜多變的業務場景,或者更加精細化的運營。