关于Eeasy rules在工作中的感想
Easy rules 规则引擎
- 关于实现/使用
实现和使用可以直接百度/google , 例如:规则引擎EasyRules_浅析 - 海韵༒听心 - 博客园
本文主要描述 一些心得 关于Easy rules 的使用场景。
- 现用工作中的Esay rules 使用场景
目前 , 实际工作中 是由同事先接入的Esay rules , 现由我进行维护。
根据业务逻辑开发完毕后发现 Esay rules 并不适合现有的业务场景,甚至可以说是画蛇添足 ,多此一举。
例如:业务使用的场景是处理用户的风控评分规则 , 而所谓的规则是;
-
某用户进行某个行为,扣除风控分x
-
某用户短时间触发某个行为 , 扣除风控分x
-
某用户被其他用户触发某个行为,扣除风控分x
可以发现 , 所谓的规则其实是独立的操作,如果利用Esay rules实现进行业务代码编写,就是需要在 相应的 用户行为代码 中进行设置 “fact” 以及 “fire engin” 。如果进一步思考,可以发现根本就没有使用 规则引擎的必要 , 还不如直接采用设计模式规划好方法在 适当的用户行为代码中进行调用,这样还更加清晰。
- 什么样的场景适合使用 Esay rules ?
我认为,Esay rules的合适的规则应该是对于 fact 来说是有 普遍性、不可预见性、组合性。所谓的普遍性和不可预见就是 每个规则对 fact 来说都有可能触发行为(fact 可能会同时触发多个规则),而组合就是说 每个规则之间都可能会组合触发,中断触发等。
而对于简单的、独立的、线性的规则触发,利用合理的代码逻辑即可处理,没有必要使用Eeay rules 增加复杂度。
当然,其实Eeay rules也可当做是一种设计模式,一种组织代码的方式,用Eeay rules 来替换策略模式也是一种选择。但是个人认为杀鸡用牛刀,还对其他同事阅读代码有一定的干扰和需要一定的学习成本。

浙公网安备 33010602011771号