System.out.println(|

rongbu2

园龄:4年2个月粉丝:0关注:0

关于Eeasy rules在工作中的感想

Easy rules 规则引擎

  1. 关于实现/使用

实现和使用可以直接百度/google , 例如:规则引擎EasyRules_浅析 - 海韵༒听心 - 博客园

本文主要描述 一些心得 关于Easy rules 的使用场景。

  1. 现用工作中的Esay rules 使用场景

目前 , 实际工作中 是由同事先接入的Esay rules , 现由我进行维护。

根据业务逻辑开发完毕后发现 Esay rules 并不适合现有的业务场景,甚至可以说是画蛇添足 ,多此一举。

例如:业务使用的场景是处理用户的风控评分规则 , 而所谓的规则是;

  • 某用户进行某个行为,扣除风控分x

  • 某用户短时间触发某个行为 , 扣除风控分x

  • 某用户被其他用户触发某个行为,扣除风控分x

可以发现 , 所谓的规则其实是独立的操作,如果利用Esay rules实现进行业务代码编写,就是需要在 相应的 用户行为代码 中进行设置 “fact” 以及 “fire engin” 。如果进一步思考,可以发现根本就没有使用 规则引擎的必要 , 还不如直接采用设计模式规划好方法在 适当的用户行为代码中进行调用,这样还更加清晰。

  1. 什么样的场景适合使用 Esay rules ?

我认为,Esay rules的合适的规则应该是对于 fact 来说是有 普遍性、不可预见性、组合性。所谓的普遍性和不可预见就是 每个规则对 fact 来说都有可能触发行为(fact 可能会同时触发多个规则),而组合就是说 每个规则之间都可能会组合触发,中断触发等。

而对于简单的、独立的、线性的规则触发,利用合理的代码逻辑即可处理,没有必要使用Eeay rules 增加复杂度。

当然,其实Eeay rules也可当做是一种设计模式,一种组织代码的方式,用Eeay rules 来替换策略模式也是一种选择。但是个人认为杀鸡用牛刀,还对其他同事阅读代码有一定的干扰和需要一定的学习成本。

本文作者:rongbu2

本文链接:https://www.cnblogs.com/gronbu1/p/18219351

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   rongbu2  阅读(43)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起