规则引擎调研
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
规则引擎的优点
- 声明式编程
规则可以很容易地解决困难的问题,并得到解决方案的验证。与代码不同,规则以较不复杂的语言编写; 业务分析师可以轻松阅读和验证一套规则。 - 逻辑和数据分离
数据位于“域对象”中,业务逻辑位于“规则”中。根据项目的种类,这种分离是非常有利的。 - 速度和可扩展性
写入Drools的Rete OO算法已经是一个成熟的算法。在Drools的帮助下,您的应用程序变得非常可扩展。如果频繁更改请求,可以添加新规则,而无需修改现有规则。 - 知识集中化
通过使用规则,您创建一个可执行的知识库(知识库)。这是商业政策的一个真理点。理想情况下,规则是可读的,它们也可以用作文档。
举例:
用户成就体系中,需要根据各种规则判断用户是否达到了某一等级。
B站新一代 golang 规则引擎的设计与实现
https://xie.infoq.cn/article/40bfff1fbca1867991a1453ac
gengine:
https://rencalo770.github.io/gengine_doc/#/introduce
ice:
http://waitmoon.com/docs/#/?id=ice%e4%bd%bf%e7%94%a8
drools
https://www.jianshu.com/p/e713860b128e
urule
https://github.com/youseries/urule
https://www.cnblogs.com/feixiang-energy/p/15572292.html
https://juejin.cn/post/6972707259856093221
https://www.cnblogs.com/rgqancy/p/12146343.html#5023636