产品AB测试设计

news/2024/10/22 16:34:10/

因为vue2项目升级到vue3经历分享1,vue2项目升级到vue3经历分享2,前端系统升级,界面操作也发生改变,为了将影响降到最低,是不能轻易让所有用户使用新系统的。原系统使用好好的,如果新界面用户不喜欢,或者说新界面测试不充分,导致出现一些bug,到时候一堆用户骂就得不偿失了。于是想着,是否能够AB测试的方式来做。因为之前也没做过,所以也在摸索中将经验经历总结下来,希望对大家也有帮助。
1、菜单权限分表
因为新界面的菜单与旧系统菜单路径不一样,采用的是动态加载,因此sys_permission需要做分表。
原系统的路径为/voucher
1
新系统加载方式

function loadComponent(component){let res;if (component){for (const path in modules) {const dir = path.split('views')[1].split('.vue')[0];if (dir.indexOf(component)>-1) {res = () => modules[path]();break;}}} else{res =() => import(`@/layout/other/empty.vue`)}return res;}

上面的动态加载,也就规定了界面访问路径,是根据views的路径是根据/voucher/addVoucher/index来的。如此一张sys_permission就是无法满足现状的。
1
因为有了shardingshpere的经验,这件事情就比较容易了。因为这个实质上就是一种策略模式。数据库中需要增加一个字段,用来分表。代码就不用怎么调整了,这种办法比通过java代码来做策略模式要好
搞两张表,定义分表字段,有了分表经验和shardingshpere,这个就显得很容易了。
1
权限规则与分录规则不一样,因此不再bindingTables之列,因为bindingTables是为了解决跨分片表之间的关联查询问题
1
2 后台接口增加字段
增加字段不可避免,因为分表必须指定字段以区分业务走那张表,因此接口也需要增加字段,看似这么做会产生很多更改,但是这种方式组需要改一次,因为只要分了表,那么分两张,跟分100张就没有多大区别,产品设计得扩展性大大提高。
如下图接口获取菜单中只需要增加一个版本字段即可,如果要分步上线,那给version一个默认值就可以了。
因为权限会根据version进行分表,故很简单,没什么需要赘述得了。
2

3 前端如何进行跳转
既然是新旧老系统,各系统得访问得界面有很大不同,不支持菜单不同,那么可以推论两者之间需要有两个访问路径。如果一个系统中,AB测试显示不同得菜单,那么相同的访问路径是可以做到的。但是如果是很大的改动,则这种方式从逻辑上推理就无法解决这个问题。
这样也就是说,新旧系统采用不同的访问路径,即需要想办法重定向。
如下图根据用户的属性,来判定官网到子系统的跳转,如果是版本1,则跳转到新界面,否则还是老页面。
1


http://www.ppmy.cn/news/1455042.html

相关文章

【c1】数据类型,运算符/循环,数组/指针,结构体,main参数,static/extern,typedef

文章目录 1.数据类型:编译器(compiler)与解释器(interpreter),中文里的汉字和标点符号是两个字节,不能算一个字符(单引号)2.运算符/循环:sizeof/size_t3.数组…

Android system property运作流程源码分析

一.序 前文分析了build.prop这个系统属性文件的生成,每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性&#x…

【企业动态】爱尔兰客户到访东胜物联,共拓能源管理等解决方案

近日,来自爱尔兰的房屋数据监测客户莅临东胜物联(杭州黄龙国际中心)进行参观考察,双方就未来的广泛合作进行了深入的沟通交流。 来访期间,东胜物联CEO支江峰先生热情接待了客户,并陪同他们参观了产品展厅&…

欢乐钓鱼大师脚本,游戏托管一键操作!

欢迎来到《钓鱼大师乐趣无穷》!这里是一片充满了乐趣和挑战的钓鱼天地。不论你是刚刚入门的小白,还是已经成为老手的大神,本攻略将为你揭示如何在游戏中获得成功,并针对稀有鱼类的钓鱼技巧进行详细介绍。 一、初探钓鱼的乐趣 在《…

数据结构 栈实现队列

题目描述: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素i…

Costas-Barker序列模糊函数仿真

文章目录 前言一、Costas 序列二、Barker 码三、Costas-Barker 序列模糊函数仿真1、MATLAB 核心代码2、仿真结果①、Costas-Barker 模糊函数图②、Costas-Barker 距离模糊函数图③、Costas-Barker 速度模糊函数图 四、资源自取 前言 Costas 码是一种用于载波同步的频率调制序列…

深入探讨SOCKS5代理:安全、隐私与技术实现

在当今的数字化世界中,网络安全和隐私已成为热门话题。企业和个人都在寻求更安全的方式来保护其数据和通信。在众多解决方案中,SOCKS5代理因其独特的功能和强大的灵活性而脱颖而出。本文将深入探讨SOCKS5代理的工作原理,其与HTTP代理的区别&a…

Java二维码、条码生成及解码工具类

功能描述 生成二维码、条码解码使用谷歌的zxing依赖 引入依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.1</version> </dependency><dependency><groupId>…