如何管理项目中的 AbTest 实验代码?

2022-05-27 10:47:46 +08:00
 PlumKTse

在做的项目经常需要开设实验,在页面载入的同时请求后端得到根据用户 ID 分组的实验参数,以这个为依据对不同的用户展现不同的效果,最后 DA 分析数据采用最优方案。现在问题是项目中遗留了很多这样的实验代码,充斥着大量的 if/else 语句,这些语句有绑在 HTML 上的,也有在函数里面的,也有设置在 class 上的,最后实验结束移除这些实验代码就比较麻烦。现在就想把实验逻辑和业务逻辑区分,想了一种方案:

在需要进行实验的页面或组件下设立 AbTest 文件夹,首先根据实验名创建文件夹,在每个实验文件夹下面创建不同实验组的文件夹,每个实验组文件夹里面放具体的代码,比如 JS 可能就是写函数,比如实验组 A 下的 Test 函数表现的行为是 console.log('A'),实验 B 下的 Test 函数则是 console.log('B'),然后编译时会去把这两个函数改个名,比如 TestGroupA 和 TestGroupB ,挂载到页面或组件实例上,然后创建一个同名函数 Test ,根据异步请求得到的实验参数去判断具体执行哪一个。

这个方案的一个优点是写起来比较清晰,但是代码容易冗余,代码提示可能也没办法特别完善。想问问各位大佬,对 AbTest 这种实验代码分离有没有什么更好的方案

786 次点击
所在节点    前端开发
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/855614

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX