前言

在科技急速发展的今天,各种高端技术不断涌出,常见的有大数据、人工智能、机器学习、深度学习、区块链等,这类技术已经成为各大公司的首选。如今,金融行业、医疗行业、教育行业、保险行业及传统行业都在发生着巨大的改变,都在向互联网、物联网方向进行转型,从而突出了IT(信息技术)的重要性。科技决定发展、科技改变人生已经不再遥不可及。

目前流行的行业,以金融类项目为例,风险控制系统、反欺诈系统、决策引擎等也成为常用且经常变化的业务。这类经常变更的业务让公司运营和程序员都非常头痛。按照产品开发的传统逻辑思维,基本写法就是添加If判断,或者通过SQL查询条件中的动态添加判断,如Mybatis配置文件中的<if>。这应该是大部分程序员第一时间想到的解决方案,但是依照这类传统的思维方式考虑问题会出现以下弊端。

(1)增加开发人员与测试人员的工作量。

(2)部门间需要更加频繁地进行业务沟通,时间成本增加。

(3)增加用人成本,造成公司损失。

如何解决这些弊端成了技术部门的重要任务之一。规则引擎的出现完美地解决了这个问题。我刚开始研究规则引擎时有些迷茫,所面临的问题很多,在网上搜索规则引擎时,不知道选择学习哪一个规则引擎,当时网上规则引擎有IBM ILog、URule、Rule Engine、Visual Rules、Drools。分析后,我发现只有Drools是开源项目,于是就开始了学习Drools的苦行。为什么说是苦行呢?原因很简单,Drools有一定的学习成本,而且当时(2016年)网上可以找到的教程实在是少之又少,很多人都是会用一些但并不知其道理与知识点,遇到问题连解决方案都没有,只能通过自己不断测试实践和钻研英文资料进行学习,鉴于我英文水平实在有限,就在一些QQ群和国外的论坛里找寻志同道合的人。经过一年的努力,我编写了《Drools技术指南中文教程》(电子文档),创建了有关Drools 6.4版本的博客[1]和Drools技术讨论群[2]及微信公众号[3],为国内Drools技术填补了空白。

本教程并非翻译官方文档,虽然有些地方看起来很相似,但知识点的说明比官方更好理解,下面跟着我的思路开始学习Drools吧!

本书提供以下源代码下载地址。

Drools测试用例:https://github.com/projectLzh/DroolsTest。

Drools Spring:https://github.com/projectLzh/DroolsSpring。

Drools Spring Boot:https://github.com/projectLzh/DroolsSpringBoot。

JavaWorkbench交互:https://github.com/projectLzh/WorkbenchJava。

读者也可以扫描下方二维码,关注微信公众号,输入书中资源下载码:56912,获取源代码。

004-1

[1]作者的博客地址:https://me.csdn.net/u013115157。

[2]作者的技术讨论及教学视频QQ群:676219749。

[3]作者的微信公众号:程序猿之塞伯坦。