当前位置:网站首页>Rule engine development experience sharing - reddit
Rule engine development experience sharing - reddit
2022-06-28 21:59:00 【Solution jdon】
background . I work in a team , Responsible for managing a bunch of different rule engines . One of them is pure Java noodles , Only the people who developed it understand , The other is in a proprietary BRMS Running on the system , Tens of thousands of rules , Another one is developed by me , Is a decision table system .
When building a rule engine , The most important thing you can do is limit its functionality . In your case , You should have at least three separate rule engines : An account logic , A check on product availability , Another problem with finding customer accounts . This will help limit possible spaghetti .
The second most important thing you can do is make sure that every rule can be tested 、 restructure , And you can guarantee this set of rules . So , I recommend avoiding the use of separate languages that enforce rules . It can be powerful , But they can be test nightmares , And specialized rule languages are usually not as good tools as mainstream languages . If you use something like a decision table , It's much easier to validate the input and convert it correctly into classes in your own code .
Last , I recommend that you prevent any form of status or ordering in your rules . If you need to stay in shape between rounds of execution , You're probably actually talking about different types of rules , for example , Establish different rule sets to determine whether customers can place orders ( Boolean output ), And another rule set to determine the amount of credit they receive ( Decimal output ), Instead of putting them together , use 0 To indicate that the customer cannot place an order .
边栏推荐
- 16 `bs对象.节点名div.属性contents` children descendants 获取子节点 子孙节点
- How can the sports app keep the end-to-side background alive to make the sports record more complete?
- 直播预告|SQL也能玩转工业级机器学习?MLOps meetup V3带你一探究竟!
- Security dilemma of NFT liquidity agreement - Analysis of the hacked event of NFT loan agreement xcarnival
- Workplace tips | understanding the advantages of the position "knowing people"
- LeetCode560. Subarray with and K
- Microsoft's exclusive payment function has also been perfectly unlocked
- 17 `bs对象.节点名h3.parent` parents 获取父节点 祖先节点
- postman简介与安装步骤
- How to analyze the relationship between enterprise digital transformation and data asset management?
猜你喜欢

16 `bs object Node name Div. attribute contents ` children descendants get child nodes and descendants

Lumiprobe protein labeling research scheme

Activate function
![[dynamic programming] p1018 linear DP: maximum product](/img/3f/b2f394f328c214937add7afa0568c3.jpg)
[dynamic programming] p1018 linear DP: maximum product
![Sword finger offer:[day 1 stack and queue (simple)] --- > use two stacks to realize the queue](/img/e4/60b063a3131d92e40b5fa610bbec17.jpg)
Sword finger offer:[day 1 stack and queue (simple)] --- > use two stacks to realize the queue

Binomial distribution (a discrete distribution)

Application practice | 1billion data second level correlation. Huolala's OLAP System Evolution Based on Apache Doris (with PPT download)
![Sword finger offer:[day 2 linked list (simple)] --- > reverse linked list](/img/05/0d7ed95f83c2188d274dde84817dc3.jpg)
Sword finger offer:[day 2 linked list (simple)] --- > reverse linked list

Anti rabbit dylight 488 abbkine universal immunofluorescence (if) toolbox

User network model and QoE
随机推荐
开通股票炒股账号安全吗?是靠谱的吗?
Multinomial distribution (a discrete distribution)
SQLSERVER sys. Escape of parameter placeholders in messages
Binary tree problems
LeetCode123. 买卖股票的最佳时机III
LeetCode1114. 按序打印
LeetCode:合并两个有序链表_21
LeetCode188. 买卖股票的最佳时机IV
Study on luminiprobe non fluorescent azide -- 3-azido propanol
LeetCode121. The best time to buy and sell stocks
PHP login problem
Why use the rust language?
Building web automation environment
Lumiprobe protein labeling research scheme
Real time transformer: meituan's research on single image depth estimation
Is it safe to open a stock trading account? Is it reliable?
QStringLiteral(str)
Progress in visual weakly supervised learning
Lua source code analysis: 1 Lua variable type mutability is implemented in C code.
rosdep update 使用小鱼fishros解决ros1/ros2问题 2022