痛点
做业务开发的程序员经常会因为业务的频繁变动而变更业务代码。每一次的变动都要涉及开发、测试、发版,不仅效率低,而且容易产生Bug。特别是对于复杂度高的业务逻辑(比如电商平台的营销活动规则,风控业务规则等),直接编码业务规则会让代码中充斥着各种IF-ELSE,代码的维护性和扩展性非常差。有没有好的系统设计来将业务逻辑从代码中分离出来,让代码可以变得稳定易维护,且让业务规则可以灵活变更呢?
解法
解决上述痛点的答案便是业务规则引擎,全称是业务规则管理系统(Business Rule Management System,简称BRMS)。他的主要思想是:将应用程序中的业务决策部分分离出来,使用预定义的语义模块编写业务规则,由用户或开发在需要时进行配置、管理。简单说,就是把代码化业务规则,抽象成数据化的规则库加执行引擎。执行引擎固定不变,通过加载和解析业务规则,对输入数据执行规则条件,输出结果。如下图所示。

BRMS除了将业务规则和程序代码解耦外,更重要的是,数据化的规则库可以交由业务员而非程序员配置和管理,做到让最懂业务的人来定义业务规则。
需要注意的是,BRMS不是指某个具体的软件系统或技术框架,而是像OA、CRM、ERP一样代表解决某个领域问题的一类系统。作为这类系统的具体实现,市面上有多款开源或企业级BRMS可供选择。
开源BRMS
开源BRMS有很多,下面列举了几个Java技术栈中比较常用的BRMS。

简单业务场景可以使用表达式求值引擎,它的思想是把程序中的代码

本文探讨了业务规则引擎(BRMS)如何解决业务逻辑频繁变更的问题,介绍其原理,并对比了几种常见的开源BRMS。
最低0.47元/天 解锁文章
827

被折叠的 条评论
为什么被折叠?



