关于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 来替换策略模式也是一种选择。但是个人认为杀鸡用牛刀,还对其他同事阅读代码有一定的干扰和需要一定的学习成本。
本文作者:rongbu2
本文链接:https://www.cnblogs.com/gronbu1/p/18219351
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步