關於Eeasy rules在工作中的感想

rongbu2發表於2024-05-29

Easy rules 規則引擎

  1. 關於實現/使用

實現和使用可以直接百度/google , 例如:規則引擎EasyRules_淺析 - 海韻༒聽心 - 部落格園

本文主要描述 一些心得 關於Easy rules 的使用場景。

  1. 現用工作中的Esay rules 使用場景

目前 , 實際工作中 是由同事先接入的Esay rules , 現由我進行維護。

根據業務邏輯開發完畢後發現 Esay rules 並不適合現有的業務場景,甚至可以說是畫蛇添足 ,多此一舉。

例如:業務使用的場景是處理使用者的風控評分規則 , 而所謂的規則是;

  • 某使用者進行某個行為,扣除風控分x

  • 某使用者短時間觸發某個行為 , 扣除風控分x

  • 某使用者被其他使用者觸發某個行為,扣除風控分x

可以發現 , 所謂的規則其實是獨立的操作,如果利用Esay rules實現進行業務程式碼編寫,就是需要在 相應的 使用者行為程式碼 中進行設定 “fact” 以及 “fire engin” 。如果進一步思考,可以發現根本就沒有使用 規則引擎的必要 , 還不如直接採用設計模式規劃好方法在 適當的使用者行為程式碼中進行呼叫,這樣還更加清晰。

  1. 什麼樣的場景適合使用 Esay rules ?

我認為,Esay rules的合適的規則應該是對於 fact 來說是有 普遍性、不可預見性、組合性。所謂的普遍性和不可預見就是 每個規則對 fact 來說都有可能觸發行為(fact 可能會同時觸發多個規則),而組合就是說 每個規則之間都可能會組合觸發,中斷觸發等。

而對於簡單的、獨立的、線性的規則觸發,利用合理的程式碼邏輯即可處理,沒有必要使用Eeay rules 增加複雜度。

當然,其實Eeay rules也可當做是一種設計模式,一種組織程式碼的方式,用Eeay rules 來替換策略模式也是一種選擇。但是個人認為殺雞用牛刀,還對其他同事閱讀程式碼有一定的干擾和需要一定的學習成本。

相關文章