产品AB测试设计

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

因为新界面的菜单与旧系统菜单路径不一样,采用的是动态加载,因此sys_permission需要做分表。

原系统的路径为/voucher

新系统加载方式

ts 复制代码
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就是无法满足现状的。

因为有了shardingshpere的经验,这件事情就比较容易了。因为这个实质上就是一种策略模式。数据库中需要增加一个字段,用来分表。代码就不用怎么调整了,这种办法比通过java代码来做策略模式要好

搞两张表,定义分表字段,有了分表经验和shardingshpere,这个就显得很容易了。

权限规则与分录规则不一样,因此不再bindingTables之列,因为bindingTables是为了解决跨分片表之间的关联查询问题

2 后台接口增加字段

增加字段不可避免,因为分表必须指定字段以区分业务走那张表,因此接口也需要增加字段,看似这么做会产生很多更改,但是这种方式组需要改一次,因为只要分了表,那么分两张,跟分100张就没有多大区别,产品设计得扩展性大大提高。

如下图接口获取菜单中只需要增加一个版本字段即可,如果要分步上线,那给version一个默认值就可以了。

因为权限会根据version进行分表,故很简单,没什么需要赘述得了。

3 前端如何进行跳转

既然是新旧老系统,各系统得访问得界面有很大不同,不支持菜单不同,那么可以推论两者之间需要有两个访问路径。如果一个系统中,AB测试显示不同得菜单,那么相同的访问路径是可以做到的。但是如果是很大的改动,则这种方式从逻辑上推理就无法解决这个问题。

这样也就是说,新旧系统采用不同的访问路径,即需要想办法重定向。

待补充...

相关推荐
字节数据平台1 个月前
数据飞轮赋能科学决策:火山引擎 DataTester 升级 A/B 大模型评测
大数据·人工智能·语言模型·ab测试
字节跳动数据平台2 个月前
数据飞轮赋能科学决策:火山引擎 DataTester 升级 A/B测试大模型评测
后端·ab测试
软件测试微课堂4 个月前
接口框架辅助类的深度解析(上篇)
单元测试·测试·ab测试
得物技术4 个月前
得物AB实验平台数据驱动决策实践
大数据·架构·ab测试
ldj20205 个月前
Linux 安装ab测试工具
linux·服务器·ab测试
货拉拉技术6 个月前
因果推断之中介效应
大数据·算法·ab测试
字节跳动数据平台6 个月前
解锁产品迭代新速度:A/B测试在AI大模型时代的应用
大数据·ab测试
货拉拉技术6 个月前
因果推断技术实践简述
大数据·算法·ab测试
007php0076 个月前
《探索信息技术中心一体化系统架构:提升企业数字化转型的效率与能力》
java·数据结构·经验分享·redis·笔记·git·selenium·测试工具·其他·算法·百度·docker·微信·golang·系统架构·github·测试用例·php·排序算法·集成测试·音视频·压力测试·postman·文心一言·课程设计·ai编程·微信公众平台·ab测试·模块测试·测试覆盖率·webkit·facebook·oneapi·twitter·composer·jira·scss·安全性测试·paddle·新浪微博·segmentfault·微信开放平台
字节跳动数据平台6 个月前
火山引擎VeDI:A/B测试平台指标能力升级,助力企业提升精细化运营效率
ab测试