前言

前面将活动抽象成了规则检验和一系列的操作,不同的活动的规则有重叠也有不同,如何设计才能保证最好的扩展性。
规则引擎的出现就是制定一套规则检验的模型,下面来看下具体的设计。

核心UML图

组件介绍

主要分为以下三个关键模块

  • 规则实体

    存储规则属性

  • 规则检验器

    执行规则检验,检验不通过可以自定义文案,该文案可以展示给用户看

  • 执行引擎

    串联业务请求和规则检验

使用场景

  • 活动参与条件判断
    活动规则这里采用的是单规则检验失败跳出方式,只有一个规则检验不通过,就结束了。

  • 红包使用规则判断
    红包等一系列优惠载体对于使用也会有一系列的规则检验,同活动不同,所有不可用的原因都需要展示出来。
    通过这个规则引擎其实也是支持的

接入规范

  1. 规则在DB层的存储尽量按照相同的结构,可以采用列扩展的方式,自己定义一个规则解析器读取对应的值,组装成规则集合
  2. 跟前端约定格式之后,例如采用[{“code”:“StartTime”,“value”:“123445”}]这种JSON串格式,就可以很方便支持规则的扩展,活动管理存储规则相关的代码服务端基本上就保持不变
  3. 新增规则增加对应RULE实体和Checker的逻辑即可

如何构建营销活动平台(四):规则引擎设计相关推荐

  1. 如何构建营销活动平台(一):前言概述

    背景 笔者接触营销活动已经接近半年时间,围绕C端用户的邀新,留存,促活也上线了一些营销活动,为了实现组件化,在编程过程中也一直在思考如何搭建一个营销平台, 从而实现运营活动的配置化和扩展性,忙中偷闲, ...

  2. 如何构建营销活动平台(二):业务功能设计

    营销活动主流程 功能描述 模块介绍 活动管理 新建活动:a.常用活动模板 b.现有活动上修改 c.新活动 活动管理:a.发布活动 b.暂停活动 c.终止活动 d.继续活动 渠道投放 活动形式管理 数据 ...

  3. 一物一码(6): 一物一码之【开展一物一码营销活动基本流程2,设计开发部署,生产包装,活动上线】

    二维码应用:一物一码[合集] (1) 二维码基础,以及js encode/decode QRCode纯前端实现 (2) 一物一码之[红包那点事] (3) 一物一码之[精准营销] (4) 一物一码之[得 ...

  4. 规则引擎 设计 git_引擎盖下的Git

    规则引擎 设计 git by Wassim Chegham 由Wassim Chegham 引擎盖下的Git (Git under the hood) Let's explore some commo ...

  5. 从案例角度解析建模平台动态规则引擎

    源宝导读:明源云ERP建模平台提供了强大的页面联动规则引擎,原来需要编写代码完成的联动控制逻辑,现在只需要点点鼠标,通过配置完成.本文从实际案例的角度出发,介绍原始的代码逻辑如何转化为引擎规则的过程. ...

  6. kubernetes系列之《构建企业级CICD平台(四)》

    前言:本文是构建企业级CICD的最后一篇文章,以实战为导向,讲解Jenkins 通过Pipeline流水线如何实现在kubernetes系统中做到持续集成持续部署的,请关注! 七.Jenkins在K8 ...

  7. 基于Event Sourcing和DSL的积分规则引擎设计实现案例

    架构设计模式(Architecture Patterns),是"从特殊到普遍"的.基于各种实际问题的解决方案而总结归纳出来的架构设计最佳实践,是一种对典型的.局部的架构逻辑的高度抽 ...

  8. 规则引擎 java 设计_规则引擎设计

    最近用到了规则引擎 ,简单做一个总结. 规则,说白了,就是,现状(fact)怎么样,如果(condition)怎么样,那么(action)怎么样. 规则引擎使用了rete算法,我这边使用的是drool ...

  9. .Net Core 环境下构建强大且易用的规则引擎

    1. 引言 1.1 为什么需要规则引擎 在业务的早期时代,也许使用硬编码或者逻辑判断就可以满足要求.但随着业务的发展,越来越多的问题会暴露出来: 逻辑复杂度带来的编码挑战,需求变更时改变逻辑可能会引起 ...

最新文章

  1. Xmas is coming....
  2. Linux文本搜索工具grep
  3. C++ 引用 Demo - Win32 版
  4. Vue 之qs 使用详解
  5. 虚幻4 控制台_虚幻引擎打造足球手游!实况足球新引擎测试今日开启
  6. 数据全景洞察概念简介
  7. MACAPP中引入ffmpeg库完成具体功能
  8. Android开发笔记(一百四十)Word文件的读取与显示
  9. 获取和设置消息队列的属性msgctl,删除消息队列
  10. python匹配部分字符串_python – 即使只是部分匹配字符串,如何匹配字符串?
  11. arg,argmin和argmax理解
  12. ffmpeg + rtp介绍
  13. mac 开启android 模拟器,折腾mac的经验积累 2:mac上如何玩安卓模拟器
  14. matlab2016b安装
  15. Python的猜平均数一半游戏
  16. (毕业设计资料)基于单片机自行车码表系统设计
  17. 编程大佬行为准则:一杯茶一包烟,一行代码写一天
  18. Kubernetes--k8s--进阶--全面了解HPA--部署HPA实现高可用和成本控制
  19. 配置python命令tab键自动补全
  20. PID算法控制小车转向

热门文章

  1. App Store Connect的新特性(WWDC 2018 session 301 303)
  2. 产品这糟老头子坏的很
  3. 【电赛】2019电子设计竞赛 纸张计数显示装置(F题)
  4. jquery 移除onfocus事件
  5. 全/半虚拟化、硬件/软件辅助的全虚拟化之间的区别与联系
  6. Nginx核心配置深入理解及优化
  7. 2024南方医科大学045400应用心理347心理学专业综合考研强化5套卷
  8. 35个排版耳目一新的网站设计欣赏
  9. 第05章 Tableau数据可视化
  10. qt 设置按钮大小_Python GUI教程(六):使用Qt设计师进行窗口布局