回覆列表
  • 1 # 躬身踐行

    規則引擎,是將業務執行抽象化的配置,透過其定義的資料結構、演算法和流程來實現應用程式功能的普適化。 規則引擎可以幫助企業提高業務開發效率,提高運營的靈活性,降低運營成本與開發成本,讓系統更加智慧化靈活化。這裡以jvs-rules截圖為例。

    一、什麼是規則引擎

    定義:是指對業務系統的規則進行抽象,使之成為通用模型。

    作用:幫助應用程式開發人員構建一套標準化的業務規則和演算法。

    規則引擎可以簡化業務架構,讓開發人員更容易理解業務邏輯,並在一個開發環境中提供一致易用的工具。

    主要作用有:降低開發人員使用複雜程式碼的難度;降低資料錄入工作量;最佳化功能程式碼實現,提高開發效率;靈活擴充套件應用程式功能,快速上線新功能;增加應用程式的靈活性。

    二、規則引擎的作用與價值

    • 分離商業決策者的商業決策邏輯和應用開發者的技術決策,企業可以使用靈活的規則引擎來構建新的應用程式,滿足企業業務創新需求;

    • 能有效的提高實現複雜邏輯的程式碼的可維護性,符合組織對敏捷或迭代開發過程的使用;;

    • 透過建立流程規範和規則模型,構建業務智慧執行框架,從而降低開發成本、提高應用程式的靈活性和可擴充套件性

    • 規則引擎可以幫助企業提高業務開發效率,降低業務程式碼的量,減少在開發期間或部署後修復程式碼缺陷;

    • 應付特殊狀況,即客戶一開始沒有提到要將業務邏輯考慮在內;

    • 可以幫助企業在業務創新時,提供更多靈活性以及更高的自動化程度,從而提升運營效率和市場競爭力,降低風險。

    三、規則引擎的基礎要求

    規則引擎通常是以業務邏輯為導向,來支援業務流程的開發,幫助業務開發人員完成一些功能,企業級管理者對企業IT系統的開發有著如下的要求:

    1.為提高效率,管理流程必須自動化,即使現代商業規則異常複雜。

    2.市場要求業務規則經常變化,IT系統必須依據業務規則的變化快速、低成本的更新,拖拽化配置,實施生效是規則引擎成為業務靈活性的基礎要求

    3.為了快速、低成本的更新,業務人員應能直接管理IT系統中的規則,不需要程式開發人員參與,變數加工的線上化配置,大大降低了資料加工處理的功能:

    四、一個案例,看一下常見的幾種不同應用場景

    產品業務規則引擎,可將多個複雜的功能透過一個簡單的規則邏輯組合起來,從而簡化了複雜的業務流程。

    產品技術研發規則引擎,可幫助技術人員快速高效地構建複雜的技術架構,降低運維成本,業務規則引擎可快速地將各個功能模組組合成一個完整實用的業務流程或產品方案。。

    管理決策和運營人員制定規則引擎,將多種型別的業務規則結合起來,從而達到降低運營成本與開發成本的目的。

    我們以電商的訂單場景舉例:

    根據系統的功能需求,將業務邏輯進行拆分,每個流程都需要一套單獨的規則引擎。

    在不同的場景下,規則引擎需要滿足不同使用者的實際需求,如系統中使用者下單後支付成功是指商品價格和支付金額達到最低標準,還是需要完成訂單結算。根據場景不同,的場景下往往會有不同的業務動作。

    我們再看看金融場景,使用者提交進件申請,需要前置過濾黑名單、需要過反欺詐的評估、還需要透過風控的一些基礎規則,如果拿if與else寫所有的業務邏輯,一旦風控人員需要調整需求,那麼開發人員就痛苦了。

    五、推薦幾個開源的規則引擎

    我個人理解的規則引擎就像一把鑰匙,讓應用程式可以在業務需求出現時按需生成業務流程,在業務流程發生變更時透過規則引擎將業務變更的相關資訊和原因進行匹配即可滿足當前需求。目前行業內開源的規則引擎也就那麼幾個, drools、easy-rules、urules、jvs-rules

    其中,jvs-rules的介面化的互動配置比其他幾個產品要有優勢,而且對懂業務的人要友好很多。

    開源地址:https://gitee.com/software-minister

  • 中秋節和大豐收的關聯?
  • 英雄聯盟pawn時隔141天重返賽場,僅上場一盤就被換下,你怎麼看?