获得徽章 0
如果你想重命名一个项目中的某个变量,你会怎么做呢?

难道是 ctrl + f 搜索,然后 replace 么?这样不仅效率低,而且容易出错。

更聪明的做法是使用 rename symbol 功能,主流编辑器都有这个功能。比如 vscode 直接点击某个变量,选择 rename symbol,然后你就可以输出新的名字点确定,之后这个项目(可能有多个文件)都会被替换为新名字。由于其实基于 ast 去做的,因此准确率很高。使用这种方法几秒就可以替换完成这个项目。
展开
评论
在上一家公司工作的时候,我负责开发公司的 ab test 系统。说实话,我们的功能极其简单。尽管如此,这个功能也花费了我们大量的时间去设计,实现,调试,发布。

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

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

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

```js
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 上的。

```js
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 行),不太建议直接在生产环境使用。

地址:github.com
展开
评论
当你试图对一个 npm 库做修改,一个常见的方法是

新建一个不同的名字的库,在这个新的库里你复制原有的代码并做修改。
修改依赖,引用新的被修改的库的名字。
这很不方便,且不利于追踪(比如如何查看改了什么功能?)。

patch-package 就解决了这个问题。使用方式也非常简单。

如下图:
展开
lucifer210于2021-08-07 22:08发布的图片
1
关注了标签 算法 算法
前端架构 @e签宝
下一页
个人成就
文章被点赞 1,512
文章被阅读 204,265
掘力值 7,359
收藏集
39
关注标签
29
加入于