在解决方案中实现业务规则引擎的方法或模式?

2024-01-10

我在一家年轻的银行公司工作。我们的解决方案(.NET)有一个重要的技术债务,因此我们按照 DDD 原则对其进行重构。我们计划使用业务规则引擎。业务规则涉及会计目的、营销目的、风险目的、法律内容……我们计划对由企业赞助的 BRE 进行 POC。

我正在寻找成功采用 BRE 或 BRE 组合的人们的反馈?

  • 有管理 BR 存储库的工具吗?
  • 是否有任何模式可能有助于分离进程和 BR ?
  • 您是否认识一些撰写有关将解决方案迁移到 布雷?
  • 您认为采用独特的 BRE 可以满足所有领域的需求吗? 或者为每个领域设计一个自定义解决方案原型是否更好?
  • 常见的陷阱有哪些?

Thanks,


所以,这有点咆哮,但我还没有看到业务规则引擎在生产环境中运行得很好。我唯一一次看到它们工作良好是当它们被完全像它们要替换的代码存储库一样对待时。

他们需要遵循 SDLC,经历需求收集、开发(与工程师一起)、质量保证,最后升级到生产。

规则引擎通常作为绕过开发、测试和源代码管理成本的方法出售给业务人员。这些系统通常会在很短的时间内崩溃。规则是编程逻辑,事实上它们是从某个数据库加载而不是从文件系统加载,这不会改变任何事情。作为编程逻辑,最适合开发它们的人是……程序员。

当业务人员尝试编写这些内容时,当系统无法阻止他们制造流程陷入的逻辑漏洞时,他们往往很快就会感到沮丧。程序员习惯思考的事情。

这实际上只是一个忠诚度问题。您正在用一种高保真编程语言(java、c、python)来交换一种低保真语言。你并没有神奇地减少决策点的数量。你只是试图用一种必然更受限制的语言来表达它们。当您尝试用低保真语言表达更复杂的问题时,您最终会创造出一个怪物。数百或数千条规则以菊花链方式连接在一起。由于只有一两个人能够理解它,它很快就会成为组织的巨大负担。

也许你的公司是不同的,但我见过这种情况发生过几次,通常唯一的出路就是报废和重建。我见过工作得相当好的业务工作流程引擎。只是以相当高级的方式协调较低级别逻辑部分的事物。但将所有真正的决策留给较低级别​​的机构。不过,这些也需要保留在原来的位置,并有可行的促销、质量保证等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在解决方案中实现业务规则引擎的方法或模式? 的相关文章

  • 代理模式和装饰者模式的区别

    你能给出任何好的解释吗 Proxy and 装饰者 我看到的主要区别是 当我们假设Proxy uses 作品 and 装饰者 uses 聚合那么似乎很清楚 通过使用多个 一个或多个 装饰器您可以修改 添加功能到预先存在的实例 装饰 而Pro
  • C++11 的 &&(R 值引用)运算符是否废弃了“代理对象”设计模式?

    Scott Meyers 的第 30 项 更有效的 C http www amazon co uk More Effective Programs Professional Computing dp 020163371X绘制出 代理对象 编
  • 注册模式和注册对象的延迟实例化

    让我们想象一下我们有注册表模式
  • 是否可以将继承应用于 Singleton 类?

    今天面试时遇到一个问题 是否可以在单例类上应用继承概念 我说过 由于构造函数是私有的 因此我们无法扩展该 Singleton 类 他问我的下一件事是在该 Singleton 类上应用继承 因此 我将单例的构造函数设置为受保护的 认为孩子的构
  • 正式协议对象有什么用

    我们可以在源代码中创建协议对象 但是正式的协议对象有什么用呢 Protocol myObj protocol protocolName 您可以使用它来检查对象是否符合协议 anotherObject conformsToProtocol m
  • 向项目添加资源的设计

    我有课Project Resource and File where A Project包含列表资源 Each Resource包含以下列表Files特定类型的 这被映射到 XML
  • “上下文模式”的这种实现看起来不错吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有多个处理单元可能存在于一个数组中 每个处理单元都有自己的参数 我想使用以下方式传达每个处理单元的参数上下文模式在它被建议作为另一个问题的解答 ht
  • 策略模式的现实示例

    我一直在读关于OCP原理 http en wikipedia org wiki Open closed principle以及如何使用策略模式来实现这一目标 我打算尝试向几个人解释这一点 但我能想到的唯一例子是根据 订单 的状态使用不同的验
  • Javascript 中繁重计算的最佳实践?

    我正在处理客户端脚本 需要进行繁重的计算 例如将大量对象推送到数组中 这会导致 JavaScript 停止响应并且浏览器挂起并发出警报 是否有任何最佳实践或设计模式来处理这些计算 我搜索并找到许多不同的方法来处理这些情况 但解决方案很难实现
  • AngularJS 服务并承诺最佳实践

    我有一个 AngularJS 应用程序services 调用 http资源并返回promise我在控制器中解决了这个问题 这是我正在做的事情的示例 app service Blog function http q var deferred
  • 使用 LINQ to SQL 的 .NET 架构的最佳设计实践(DAL 必要吗?我们真的可以使用 POCO吗?要采用的设计模式吗?)

    我避免在 net arch n 层架构上编写看起来像是另一个线程的内容 但请耐心等待 希望我和其他人一样 在选择用于企业应用程序的架构时 考虑到当今的趋势和新兴技术 仍然没有 100 满意或不清楚应采取的最佳方法 我想我正在寻求大众社区对方
  • Java API 中单例类的示例

    Java API 中单例设计模式的最佳示例有哪些 是个Runtime类单例 我只想到两个例子 java lang Runtime getRuntime http java sun com javase 6 docs api java lan
  • 如果我以后要应用ado实体框架,推荐的数据访问层设计模式是什么?

    我正在创建一个网站并使用 Linq to SQl 作为数据访问层 并且我愿意使该网站可以在 linq to sql 和 ado 实体框架上工作 而无需更改其他层中的许多内容 业务逻辑层或 UI层 实现这一目标的推荐模式是什么 你能简单解释一
  • 静态库中的单例类

    假设我在静态库中有一个单例类 S 它可以与其他动态库 D1 D2 D3 链接 因此 据我了解 类 S 在每个 D1 D2 和 D3 中都会有一个单独的实例 即使它不是单例 如全局 这也是正确的 有什么办法可以防止S类的多副本吗 我无法将单例
  • IoC 服务的抽象类还是接口?

    我目前正在使用 IoC 在项目中提供存储库的具体实现 我读过的所有示例都使用接口作为服务的定义 但是 在阅读了 Microsoft 的建议后 建议更喜欢抽象类而不是接口 http msdn microsoft com en us libra
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • python 中的代表

    我实现了这个简短的示例来尝试演示一个简单的委托模式 我的问题是 这看起来我已经理解了委托吗 class Handler def init self parent None self parent parent def Handle self
  • 为什么工厂模式会这样工作?

    我从未真正研究过工厂模式 今天决定花时间根据本文创建一个快速示例 http msdn microsoft com en us library ee817667 aspx http msdn microsoft com en us libra
  • Struts ActionForm 属性应该是什么类型?

    我使用 Struts 1 2 4 继承了这个巨大的遗留 Java Web 应用程序 我有一个关于 ActionForms 的具体问题 其中一些仅具有字符串属性 即使对于数字 其中一些使用看似合适的类型 整数 日期 字符串等 这里的最佳实践是
  • 如何在Java中实现复合模式?

    我想实现一个复合模式Java以便绘制软件开发组织图 因此 我们假设有多个项目经理和多个开发人员 每个开发人员都被分配给一位项目经理 并且每个开发人员都能够使用各种编程语言进行编码 项目经理领导开发人员并准确了解他们的工作量 我对这个设计模式

随机推荐