你是否应该使用规则引擎
来源:互联网 发布:oracle误删除数据恢复 编辑:程序博客网 时间:2024/06/06 08:42
“规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。” -- 摘自百度百科。
上面的解释可能过于晦涩了。我们来看看Martin的文章,就觉得这是很简单的东西了。
Martin Fowler关于规则引擎的介绍:
https://martinfowler.com/bliki/RulesEngine.html
- 根据 Fowler 的描述,规则引擎很简单, 可以自己设计一个,只需要condition和action,并这两者装入collection即可。
所以,根据 Fowler 讲的,有个老外自己实现的简单引擎, 确实只需要Condition和Action:
https://github.com/j-easy/easy-rules
- 我们是否应该使用规则引擎? 想象下, 当我们把可定义的规则后台开放给业务运营使用后,总会有一些程序难以把控的边界情况被业务使用后造成问题。并且,通常这种情况是程序猿意想不到的。特别的,当它还是一个定义复杂的规则的时候,通常非常难以调试。这是可以想象的, 因为有些规则没有经过程序逻辑的严谨设计。基于此,Martin 有点厌倦rule engine这类产品,甚至建议大家在没太大必要的情况下, 不要使用rule engine。
- 基于上面的情况下, 非常有必要限制过多的condition, 特别关注有嵌套逻辑的情况。
- 在关注性能的情况下, 请关注你使用的规则引擎是否apply了 Rete算法。
对于电商系统, 营销功能部分, 可以使用规则引擎来实现,但不建议开放给业务侧。
如果一定要使用规则引擎,推荐使用开源的规则引擎产品 Drools, 以下附上相关资料供学习之:
官方文档:
http://www.jboss.org/drools/documentation.html
There are two books from PackIt publishing that aren't bad:
https://www.packtpub.com/drools-jboss-rules-5-0-developers-guide/book
https://www.packtpub.com/jboss-drools-business-rules/book
InfoQ上面的一遍好文章:
http://www.infoq.com/articles/Rule-Engines
老外视频教学:
https://ftp.fau.de/fosdem/2010/devrooms/jboss/drools.ogg
guide links:
https://stackoverflow.com/questions/2606603/how-to-learn-drools-or-another-rule-engine-fast
阅读全文
0 0
- 你是否应该使用规则引擎
- java规则引擎你应该知道的几点东西
- 你是否应该使用一个Javascript MVC框架?
- 你是否应该使用一个Javascript MVC框架?
- 是否应该使用ARC?
- 是否应该使用ARC?
- 是否应该使用ARC
- 是否应该使用ARC
- 为什么要使用规则引擎?
- QLExpress 规则引擎使用介绍
- 你应该使用静态
- 是否应该使用Mysql外键?
- 你是否应该成为一名全栈工程师?
- 你是否应该成为一名全栈工程师?
- 使用 Drools 规则引擎实现业务逻辑
- 使用 Drools 规则引擎实现业务逻辑
- Drools规则引擎的使用总结
- 使用 Drools 规则引擎实现业务逻辑
- xss filter绕过技巧
- javaweb随笔(四)------SpringMVC与Struts2的主要区别
- servletContext 记录
- 开发自测工具
- SpringMVC框架初探(本文是自己学习SpringMVC框架的认识可能理解的不深,不喜勿喷)
- 你是否应该使用规则引擎
- yocto
- 剑指Offer-63
- 字符串反转
- 数人云|12条军规说Dev,3大重点讲Ops——当当网的云原生之路
- jquery插件收集
- 将Ubuntu 16.14的用户界面语言从英语切换到汉语
- linux 下使用 ftp 下载 rpm 文件并安装时提示 rpmReadSignature 错误
- 大葱 剧毒 这批大葱检出剧毒农药!原计划运往全国,100多只羊吃葱叶死亡