我在寫一些使用很多規則的系統。是時候讓我組織起來讓他們更有效率了。主要要求是-業務友好,易於理解,易於查詢,易於維護,可測試。在
這個問題不是關於如何建立規則引擎。我不寫。我的目標是想辦法在乙個地方維護很多規則。讓一切變得簡單。我需要一些專業的建議怎麼做,採取什麼方法。下面是我已經做過的例子來說明我正在做這項工作,而不是簡單地讓別人來做我的工作。在
到目前為止,我有三種方法:
1)陣列型別:
在item=context.getnextitem()
if ['meat','egg','potato','fish'].contains(item): fryandeat(item)
if ['pasta','egg','potato'].contains(item): boilandeat(item)
2)每個專案的單獨檔案:在^$
3)儲存的資料庫:
在item=context.getnextitem()
sql = "select rule from rules where item='"+str(item)+"';"
for row in cursor.execute(sql):
eval( row.rule+"(str("+item+"))" )
**規則
在banana,eatraw
banana,bakeandeat
potato,bakeandeat
potato,fryandeat
potato,boilandeat
3.a)檔案中的資料
檔案規則.txt
在banana,eatraw
banana,bakeandeat
potato,bakeandeat
potato,fryandeat
potato,boilandeat
這個檔案可以看作是乙個ui。在
每種方法都有自己的利弊,但老實說,我對任何一種都不滿意。檔案增長,變得龐大,難以搜尋、維護和理解。歡迎任何其他方法或建議。在
業務規則引擎管理
什麼是規則引擎 規則引擎是一種巢狀在應用程式中的元件,它實現了將業務規則從應用程式 中分離出來。規則引擎使用特定的語法編寫業務規則,規則引擎可以接受資料輸入 解釋業務規則 並根據業務規則做出相應的決策。業務規則的管理 規則管理的首要和基本原則也就是建立規則資料庫。業務規則應該被記錄下來,當業務規則比...
jxTMS 業務規則
jxtms的核心理念之一就是 好的系統是定義出來的。當然筆者不是反對程式設計,而是程式設計太過於專業化,同時具有動態性,這兩者的結合就導致以程式設計為主要實現的系統和業務人員絕緣了。而業務系統能否發揮出充分的作用,其主要取決於系統能否貼合業務 貼合使用者的需求。顯然,過於技術化的系統是由開發人員所主...
業務規則管理
業務規則管理 business rules management,簡稱brm 在乙個企業實體中同樣存在著各種各樣的規則,像管理制度 業務手冊 工藝流程 操作規範 收費標 準 策略等都是規則,甚至一些沒有形成文字的慣例,也是企業規則的一部分。因為是與業務相關,所以又稱它 們為業務規則。業務規則分散在企...