我为什么要使用Drools?

Jas*_*per 31 java scripting rule-engine rules drools

我不是Drools专家.不过,我对它有一些熟悉,通过试验它.我无法理解,为什么我需要它.

我的典型应用是商业Web应用程序.是的,他们确实有一些规则.但这些是使用数据库表,SQL查询和一个很好的用户界面实现的,以便业务用户修改规则.规则不是任意的,它们在投入生产之前都经过仔细考虑.

我的商业用户永远不会使用(Drools)脚本语言来修改任何东西.单独修改规则.他们非常高兴使用UI屏幕来修改规则.另外,如果我让它们靠近它,它们可以在Drools文件中产生无数的语法错误.

再次
- 为什么我应该在这种情况下使用Drools?
- 我见过的Drools狂热分子坚持认为我应该改变我的所有代码以利用Drools.

那么,Drools有用吗?我不确定.

duf*_*ymo 19

无论他们热衷于什么话题,都应该质疑所有条纹的狂热分子.

数据驱动的决策表是实现复杂行为的完美方式.在它不能按照您的要求进行扩展或执行的那一天,也许您会想要考虑别的事情.

除非我有令人信服的理由,否则我不想在工作生产代码中进行技术交换.粉丝男孩游说会花费更多.

如果你真的很感兴趣,可以做一个PoC并获得一些真实的数据.如果没有,请学习如何礼貌地微笑并忽略它们.

我以前回答过这个问题:

规则引擎 - 优点和缺点

更新:如果它是你的老板,你不能解雇,那么让它基于接口并在PoC中尝试Drools实现.如果您正在使用Spring,请注入一个然后另一个,在有意义的生产额定负载下测量性能.获取一些真实的数据 - 也许你们都会学到一些东西.

  • 微笑很容易; 忽略这是一个棘手的问题. (6认同)
  • Drools项目页面不是第一个应该寻找教程的地方吗?http://www.jboss.org/drools/ (2认同)

Dr.*_*. X 6

规则引擎的优点是:

  • 声明式编程:规则可以很容易地表达对困难问题的解决方案,并让解决方案得到验证。与代码不同,规则是用不太复杂的语言编写的。业务分析师可以轻松阅读和验证一组规则。
  • 逻辑和数据分离:数据驻留在域对象中,业务逻辑驻留在规则中。根据项目的类型,这种分离可能非常有利。
  • 速度和可扩展性:编写 Drools 的 Rete OO 算法已经是一种经过验证的算法。在 Drools 的帮助下,您的应用程序变得非常可扩展。如果有频繁的更改请求,则可以添加新规则而无需修改现有规则。
  • 知识集中化:通过使用规则,您可以创建一个可执行的知识库(知识库)。这是商业政策的一个真理。理想情况下,规则具有可读性,它们也可以用作文档。工具集成:Eclipse 等工具提供了编辑和管理规则以及获得即时反馈、验证和内容帮助的方法。还提供审计和调试工具。
  • 解释设施:规则系统通过能够记录规则引擎做出的决定以及做出决定的原因,有效地提供了“解释设施”。
  • 可理解的规则:通过创建对象模型和可选的域特定语言来建模您的问题域,您可以设置自己编写非常接近自然语言的规则。它们适用于可能是非技术领域专家可以理解的逻辑,因为它们是用他们的语言表达的,所有的程序管道,技术知识都隐藏在通常的代码中。


小智 5

  • Drools 是开源的。
  • 它提供了规则执行的前向和后向链接
  • 它提供模板基本规则定义
  • 它是使用 JSR-94 实现的
  • 它具有决策表功能
  • 它的规则是人类可读的
  • 它与 Spring 集成