正在搭建公司的 ab test 的小伙伴有福了~
在上一家公司工作的时候,我负责开发公司的 ab test 系统。说实话,我们的功能极其简单。尽管如此,这个功能也花费了我们大量的时间去设计,实现,调试,发布。
easy-abtest 正如它的名字一样,是一个使用极为简单的 abtest 框架。
有多简单呢?我们来看下。
首先是定义变量,以及权重等配置。
const abtest = require("easy-abtest");
let options = {
enabled: true,
name: "experiment-ID-here",
buckets: [
{ variant: 0, weight: 0.4 },
{ variant: 1, weight: 0.6 },
],
};
app.use(abtest(options));
❝字段含义参考官方文档
❞
接下来就是使用了。经过上面的配置,你就可以在业务代码拿到之前定义的变量。比如上面的配置,你就有 40% 的请求拿到 variant 为 1,60% 请求拿到 variant 为 2。
这个数据默认是挂在 req.session.test 上的。
if (req.session.test.bucket == 0) {
return res.render("index"); // 40%
} else if (req.session.test.bucket == 1) {
return res.render("index-new"); // 60%
}
这是一个刚刚发布不到一个月的产品,代码只有 100 行左右(加上测试用例代码差不多 200 行),不太建议直接在生产环境使用。
地址:https://github.com/darshanbib/easy-abtest
爱心三连击
1.看到这里了就点个在看支持下吧,你的在看是我创作的动力。
2.关注公众号力扣加加,获取更多算法硬核文章!加个星标,不错过每一条成长的机会。
3.如果你觉得本文的内容对你有帮助,就帮我转发一下吧。
后台回复:「电子书」,获取我精心制作的算法刷题电子书(20+万字) 后台回复:「背包」,自动获取《背包九讲》pdf 后台回复:「脑图」,自动获取我制作的算法脑图总结 后台回复:「刷题插件」,自动获取上万人都在用的力扣刷题插件
另外你还可以回复具体的算法专题获取相应的文章,比如 「二分」,「堆」,「树」,「链表」等等
评论