当前位置: 首页 > news >正文

【测试人生】一套灵活的变更风险观测策略匹配机制设计

近期笔者在投入变更风险防控开放平台的额外功能开发,目的是希望设计一套更加灵活的变更风险观测策略匹配机制,能够在满足面向任意变更场景应用观测策略的同时,尽可能保证产品体验,让用户清晰地了解到自己配置的什么策略能够在什么情况的变更过程中生效。在先前的文章当中,有粗浅提到变更观测策略匹配的事情,但没有深入探究,并且笔者以前接手的项目,很多底层设计的技术债也难以偿还,要在以前实现的基础上再做重构也不是很现实了。

所以,趁着扩展新系统的机会,笔者重新思考了下变更风险观测策略匹配机制的事情,跟随这篇文章来抛砖引玉下自己的想法。

首先,还是一个根本问题,一条变更风险观测策略的粒度是怎样的?如果粒度太粗,那么从产品视角,很容易导致「所见非所得」的问题;如果粒度太细,那么用户配置起来也会相当麻烦。经评估,由单个检测能力执行的粒度代表一条策略,这样的形式相对合理,不仅方便产品层面做「所见即所得」的设计,而且实际执行过程中,也可以以原子化的形式做编排,从调度角度来讲也很容易扩展。

详细来讲,一条策略在设计上,需要关联以下几类概念:

  • 检测能力:1个变更风险观测能力,和1套能力执行/调度参数
  • 变更场景:以变更渠道/类型/阶段3个维度描述变更场景,1条策略匹配1个变更渠道,N个变更类型,N个变更阶段
  • 变更对象:1个范围的变更对象,同时也要支持细粒度的变更对象KV属性

检测能力的执行调度这部分不用太细讲,变更场景的话,从经验角度,每个变更工单有多个变更阶段,所以变更观测需要观测的维度也是阶段维度,这样的话按照变更渠道/类型/阶段去拆解变更场景也是比较合理的。设计上的纠结点主要在于变更对象匹配,在实际场景中,如果变更对象是以树的形式管理的,那么匹配变更对象可能得匹配某个非叶子节点;如果变更对象可以用通用的string表达,那么用户也可能希望一条策略匹配多个string或者正则。在这个基础上,有时用户也希望某条策略去匹配某个顶层的树节点,但又豁免掉下级的某些子节点。所以,由这些需求反推,我们可以简单得到这样的变更对象Matcher设计:

typeChangeObjectMatcherstruct{ObjectTypestring`json:"object_type"`// 树类/字符串类变更对象TreeNodeIDs[]string`json:"tree_node_ids"`// 树类变更对象,匹配的树节点ID列表ObjectValues[]string`json:"object_values"`// 字符串类变更对象,匹配的字符串值列表,也可以是正则表达式ObjectAttributesmap[string]any`json:"object_attributes"`// 字符串类变更对象,匹配的KV属性键值对ExcludeMatchers[]ChangeObjectMatcher`json:"exclude_matchers"`// 子节点匹配器,用于排除某些子节点}

在这个基础上,我们能够很方便表达出「匹配一个范围的变更对象,豁免多个子范围的变更对象」这个事情。当然,实际ExcludeMatcher应该往外面提一个字段,做成「在多个子变更场景下,豁免多个子范围的变更对象」会更加合适。至于前端分页,需要从DB筛选一波之后,内存再筛选一波,然后再做分页,这个取决于策略的量级,至少在笔者的实战场景下,DB查询已经可以变更场景+树节点,第一波出来的策略数量也不会过百,那么在内存里做分页,对内存的开销也是可以接受的。

即便如此,要兼顾产品设计和观测任务运行时的「所见即所得」的话,还有两件事情要做。

第一件事情是,需要从变更对象的角度,另外增加一套ExcludeMatcher。这样做是因为,用户操作层面,可能在前端可以看到某些策略是否匹配上,但也希望能够看到这些策略的启禁用情况。这个启禁用是变更对象视角下的,所以需要有另一套ExcludeMatcher来表达。

第二件事情是,需要把前端视角的匹配逻辑和检测任务视角的匹配逻辑区分两个Policy。这是因为,前端视角下筛选条件有限,理论上肯定无法「所见即所得」,比如我们需要匹配细粒度的ObjectAttributes,那只有在检测任务运行时才会知道。所以除了产品设计上需要有额外的说明之外,检索流程设计上用一个单独的MatchPolicy字段去表达,比如MatchPolicy为Runtime就匹配细粒度的变更属性,那这样写策略匹配逻辑就比较方便了。

http://www.jsqmd.com/news/258458/

相关文章:

  • 轴承代理来图定制哪家好,伯陆商城口碑出众 - 工业品牌热点
  • 支付宝立减金回收天花板:15 秒到账的隐藏玩法 - 可可收
  • 2026年度GEO服务商加盟代理权威推荐:基于百家客户真实反馈效果排行榜 - 品牌推荐
  • 【极客日常】快速上手复杂后端项目开发的经验
  • 导入自己的购物评价记录(商品名,评分,评价内容),统计好评率(5分为好评),输出差评商品整改建议。
  • 10万并发IM系统架构设计方案
  • 第1章:快速入门SpringBoot
  • 基于SpringBoot的美发管理系统毕业设计
  • 实用指南:物联网实训室系列产品介绍
  • 学霸同款2026 AI论文软件TOP10:继续教育必备测评
  • 权威数据发布:2026年GEO服务商加盟代理市场深度调研分析与靠谱推荐清单 - 品牌推荐
  • 我居然才知道!微信立减金不用花,回收能赚这么多 - 可可收
  • 2026年靠谱的全自动抛光机,打磨机器人抛光去毛刺,门执手自动抛光机厂家综合实力参考 - 品牌鉴赏师
  • 基于SpringBoot的美术馆管理系统毕业设计源码
  • 全场景适配与低门槛入局:2026年面向不同区域代理商的五大GEO加盟平台全景对比 - 品牌推荐
  • 2026年京东e卡换现金新技巧,2分钟轻松搞定 - 淘淘收小程序
  • 2026年靠谱GEO招商加盟服务商严选推荐:这五家企业的实战案例与口碑经得起检验 - 品牌推荐
  • 2026年专业的重庆家装管道,成都家装管道,贵阳家装管道厂家选购推荐手册 - 品牌鉴赏师
  • 权威数据发布:2026年GEO服务商加盟代理模式深度调研分析与选择指南 - 品牌推荐
  • 基于贾子智慧理论体系(四大支柱 + 五五三三定律)的 AI 未来发展深度解构
  • 2026年有实力的水龙头打磨机器人,门把手打磨机器人,汽车配件打磨机器人厂家选型参考指南 - 品牌鉴赏师
  • 2026年GEO招商加盟服务商终极指南:从技术流派到合作模式的全链路拆解 - 品牌推荐
  • 救命神器!专科生毕业论文必备TOP9 AI论文平台深度测评
  • 2026年温州净化工程公司施工流程,哪家更显专业权威?无尘车间/洁净厂房/洁净室/车间净化,净化工程公司生产商推荐 - 品牌推荐师
  • 2026年GEO服务商加盟代理实力榜单:基于技术架构与市场口碑的五大推荐 - 品牌推荐
  • AI搜索优化服务商怎么选?2026年最新聚焦效果与合规的终极选择指南 - 品牌推荐
  • 2026年AI优化服务商深度数据调研分析:五大主流品牌的技术路径与适配场景全解码 - 品牌推荐
  • 徐州市丰沛睢宁新沂邳州区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜推荐 - 老周说教育
  • 2026年AI搜索优化服务商深度解析:从技术架构到行业适配的五大头部企业全链路拆解 - 品牌推荐
  • 2026年GEO优化服务商加盟实力解码:技术流与市场派企业的加盟商评价与案例复盘 - 品牌推荐