Drools规则引擎技术指南
上QQ阅读APP看书,第一时间看更新

1.8 为什么要用规则引擎

一般的项目中没有引用规则引擎之前,通常的做法都是使用一个接口进行业务工作。首先要传进去参数,通过if…else或其他方式进行业务逻辑判断,其次要获取到接口执行完毕后的结果。引用规则引擎后就截然不同了,原有的if…else不复存在,代替它们的是规则引擎脚本,通过规则引擎实现可动态变化的“if …else”。

规则引擎可以给项目带来什么?规则引擎的应用场景是什么?使用规则引擎的好处是什么?下面将进行详细介绍。

1. 规则引擎可以给项目带来什么

(1)给公司运营人员带来了什么?

① 将业务规则交于业务员来处理。

② 提高业务灵活性,业务员可以随时对公司业务进行修改(设计时要加权限)。

③ 增加业务处理的透明度,业务规则可以被管理。

④ 修改业务将不再通过开发人员,极大地减少了对IT人员的依赖。

⑤ 减少各部门之间的矛盾,各司其职。

(2)给公司IT部门带来了什么?

① 简化了系统的复杂度,使系统间变得简单、透明。

② 提高了系统的可维护性。

③ 减少了维护成本。

④ 规则引擎是相对独立的,只关心业务规则,并不关心与谁交接。

⑤ 减少了“硬代码[1]”业务规则的成本和风险。

⑥ 减少了与业务员的冲突。

2. 规则引擎的应用场景

(1)适用的行业分类。

① 金融行业—黑名单、白名单、风险投保。

② 医疗行业—合理输血、合理用药。

③ 电商行业—促销平台。

(2)适用的系统分类。

① 风险控制系统—风险贷款、风险评估系统。

② 反欺诈项目——银行贷款、征信验证。

③ 决策平台系统——财务计算。

④ 促销平台系统——满减、打折、加价购。

3. 使用规则引擎的好处

(1)应用概述说明。

① 应对复杂多变的业务场景。

② 快速且低成本地进行业务规则变更。

③ 业务员直接管理,不需要程序员进行干预,减少风险。

④ 平台独立化,系统迁移、系统升级都极为方便。

(2)作用与优点。

① 业务规则与系统代码分离,实现代码与业务的解耦合。

② 提供领域语言(自然语言),使业务人员更容易理解。

③ 提供了可视化页面[2]操作,使用更简单。

④ 大大提高了对复杂逻辑代码的可维护性。

⑤ 可随时对业务进行扩展和维护。

⑥ 符合公司对敏捷性或迭代性开发的策略。


[1]硬代码指将业务逻辑写到项目代码中,风险是维护成本高、开发难度加大、服务器重启等。

[2]可视化页面指KIE-WB,有一定的学习成本,比较适合IT人员使用。