Java 管理大量规则-流口水

Java 管理大量规则-流口水,java,drools,Java,Drools,我们正在计划一个业务规则系统,我们已经选择JBossDrools开始测试我们的用例。我们计划按如下方式构建DRL文件: Global.drl Company1.drl Company1/Team1.drl Company1/Team2.drl ... Company1/TeamN.drl Company2.drl ... CompanyN.drl 这

我们正在计划一个业务规则系统,我们已经选择JBossDrools开始测试我们的用例。我们计划按如下方式构建DRL文件:

Global.drl
     Company1.drl
          Company1/Team1.drl
          Company1/Team2.drl
          ...
          Company1/TeamN.drl             
     Company2.drl
     ...
     CompanyN.drl
这种结构将帮助我们确定为不同类别的业务对象运行哪些规则

现在的问题是:

  • 如何知道在大量规则的系统中是否已经存在类似/冲突的规则。当规则系统增长时,添加新规则是否需要开发人员在编写新规则之前手动扫描所有规则以验证冲突规则
  • 在如此庞大的规则系统中,如何正确地排序规则(使用显著性)
  • 是否有一种方法可以快速列出特定类别的规则,这将帮助我们在添加新规则之前了解类似的现有规则
  • 谢谢

    一些答案:

  • 如何知道在大量规则的系统中是否已经存在类似/冲突的规则。当规则系统 增长,添加新规则是否需要开发人员扫描 在写入之前,手动修改所有规则以验证冲突规则 新规则
  • 没有现成的方法可以做到这一点。我发现,保持一致性规则基础的最佳方法是使用一组广泛的测试来验证尽可能多的场景

  • 在如此庞大的规则系统中,如何正确地排序规则(使用显著性)
  • 良好的实践告诉我们,在执行规则时建立秩序通常不是一个好主意。规则本身应尽可能独立于其他规则的执行。当然,在某些情况下,您需要设置特定的顺序。在这些情况下,Drools提供了一些实现这一点的方法:

    • :它允许您指定规则的执行顺序
    • :它允许您将规则分组为逻辑组,并仅执行特定组中的规则。您可以链接这些组的执行
  • 是否有一种方法可以快速列出特定类别的规则,这将帮助我们在添加新规则之前了解类似的现有规则
  • 我不确定你所说的分类是什么意思,但我想答案是否定的


    希望有帮助,

    规则表达了一个商业事实。drools应该如何确定业务事实是否相互矛盾?我同意drools中没有现成的方法来实现这一点。谢谢