这是我参与「第五届青训营」伴学笔记创作活动的第 5 天
问题背景
企业级管理者可能会在系统生产过程中调整生产策略、物料采购策略等,因此对企业IT系统的开发有着如下的要求:
- 为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。
- 市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。
- 为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。
而项目开发人员则碰到了以下问题:
- 程序=算法+数据结构,有些复杂的商业规则很难推导出算法和抽象出数据模型
- 软件工程要求从需求->设计->编码,然而业务规则常常在需求阶段可能还没有明确,在设计和编码后还在变化,业务规则往往嵌在系统各处代码中
- 对程序员来说,系统已经维护、更新困难,更不可能让业务人员来管理。
什么是规则引擎?
规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并 使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业 务决策。
规则引擎的作用
-
解决开发人员重复编码的问题
-
业务决策与服务本身解耦,提高服务的稳定性
-
缩短开发的路径,提高开发的效率
规则引擎的应用场景
风控对抗:
与黑灰产的对抗过程中 , 策略研发和产品需要能够根据黑灰产特征进行快速识别和对抗 。 规则引擎作为风控系统的核心 , 使产研人员能够不断的调整和优化对抗策略 , 以实现最好的风控识别效果 。
活动策略运营:
业务活动的运营需要及时根据用户效果反馈进行运营策略的优化和调整 。引入规则引擎后,可以将服务代码与业务运营逻辑解耦 , 提高运营策略的迭代效率 。方便新玩法的探索和效果验证
数据分析和清洗:
在数据分析系统中使用规则引擎可以便捷的实现对数据进行整理 、清洗和转换 。 数据分析师可以根据不同的需求来自定义数据处理的规则 , 方便快捷的产出所需要的数据 。