首页 文章详情

正在搭建公司的 ab test 的小伙伴有福了~

脑洞前端 | 597 2021-08-10 15:49 0 0 0
UniSMS (合一短信)

在上一家公司工作的时候,我负责开发公司的 ab test 系统。说实话,我们的功能极其简单。尽管如此,这个功能也花费了我们大量的时间去设计,实现,调试,发布。

easy-abtest 正如它的名字一样,是一个使用极为简单的 abtest 框架。

有多简单呢?我们来看下。

首先是定义变量,以及权重等配置。

const abtest = require("easy-abtest");
let options = {
  enabledtrue,
  name"experiment-ID-here",
  buckets: [
    { variant0weight0.4 },
    { variant1weight0.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
  • 后台回复:「脑图」,自动获取我制作的算法脑图总结
  • 后台回复:「刷题插件」,自动获取上万人都在用的力扣刷题插件

另外你还可以回复具体的算法专题获取相应的文章,比如 「二分」「堆」「树」「链表」等等


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter