业务代码分离:规则引擎(BRMS)

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

痛点

做业务开发的程序员经常会因为业务的频繁变动而变更业务代码。每一次的变动都要涉及开发、测试、发版,不仅效率低,而且容易产生Bug。特别是对于复杂度高的业务逻辑(比如电商平台的营销活动规则,风控业务规则等),直接编码业务规则会让代码中充斥着各种IF-ELSE,代码的维护性和扩展性非常差。有没有好的系统设计来将业务逻辑从代码中分离出来,让代码可以变得稳定易维护,且让业务规则可以灵活变更呢?

解法

解决上述痛点的答案便是业务规则引擎,全称是业务规则管理系统(Business Rule Management System,简称BRMS)。他的主要思想是:将应用程序中的业务决策部分分离出来,使用预定义的语义模块编写业务规则,由用户或开发在需要时进行配置、管理。简单说,就是把代码化业务规则,抽象成数据化的规则库加执行引擎。执行引擎固定不变,通过加载和解析业务规则,对输入数据执行规则条件,输出结果。如下图所示。
在这里插入图片描述

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

开源BRMS

开源BRMS有很多,下面列举了几个Java技术栈中比较常用的BRMS。
在这里插入图片描述

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网工匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值