Skip to content

Instantly share code, notes, and snippets.

@qiulang
qiulang / git_bisect.md
Created January 18, 2019 08:52
git bisect使用

git bisect

我想查看目前 src/api.js 这段改动是在哪个commit 引入

}).catch(err => {
    reject(err)
})
@qiulang
qiulang / 为什么我们最终改用superagent.md
Last active January 5, 2020 01:42
为什么我们最终改用superagent 而不是用axsio

为什么选择bull queue

  1. 我们需要一个基于 redis的轻量级的job queue, 和这个SO问题完全一样: Background processes in Node.js "After a user posts something to an app I want to crunch the data, request additional data from external resources, etc. All of this is quite time consuming, so I want it out of the req/res loop. "

  2. google基本上只有三个结果 bee-queue , bullkue 。其他几个星值都太低了, 参见 bee-queue vs bull vs kue vs node-resque vs queue vs tiny-workervs webworker-threads 。基于其他message queue,比如RabbitMQ, Kafka, ActiveMQ 的实现同样不考虑(下面bee-queue同样提到这点)

  3. 一开始,选择的bee-queue,因为它最简单,附带的example 一看就懂(这点做得比bull好)这也是它自己强调的。 bee-queue有篇wiki, Bee Queue's Origin 提到它开始用bull,但因为性能达不到要求就自己开发 bee-queue

如何设置环境变量

12factor 所述, 我们的程序在不同的环境、不同平台的环境变量不同,如何有效的让程序读取环境变量一直是个问题。

上一个项目用了 per-env ,但 per-env 在 windows 上有bug 需要改它的代码,使用 cross-spawn

更重要问题是,per-env 其实就是把环境变量写在 package.json 里,感觉不如直接用 .env 包,避免 package.json 承载太多功能。

使用 .env 最大问题,它不建议把 .env 加到版本库,也不建议有多个.env 文件;但我们实际使用感觉就是要共享.env 文件,而且不同平台有不同 env 文件配置才能方便大家开发,所以到底这么解决?

@qiulang
qiulang / 不同分词器在elastic中的实际效果.md
Last active October 31, 2022 10:10
不同分词器在elastic中的实际效果
@qiulang
qiulang / 为web应用搭建CI服务器的一点经验.md
Created September 17, 2018 11:49
为web应用搭建CI服务器的一点经验

为web应用搭建CI服务器的一点经验

为我们的web app 开发搭建CI服务器以前一直欠缺两个必要条件:

  1. 好用UI测试工具。如果只是编译、打包(甚至单元测试),个人感觉完全没有搭建CI服务器必要,投入产出不成比例,每个人在自己机器跑npm script就好了。
  2. 搭建CI服务器的学习、维护成本。比如,让我们的人从头开始搭建JenkinsTravis CI 成本都太高了!

最近一段时间开发,上述两个问题都有很不错解决方案,我们的"CI服务器"终于也搭建完成:

首先, katalon 确实能胜任 UI的自动化测试(它应该是目前市面上能找到最好用的工具)。编写katalon测试用例需要投入一定时间和精力,但这部分的投入还是值得。

@qiulang
qiulang / 发布一个es6的npm包.md
Last active August 2, 2018 14:32
发布一个es6的npm包,只用在最新浏览器

发布一个es6的npm包,只用在最新浏览器

所有用到es6特性,我们都确认浏览器支持, 所以觉得把包转成es5是不必要的,但在实际使用中还是发现不转es5有不少坑。

mocha的问题

首先,mocha还不支持es6,所以为了能跑 mocha 测试用例就需要babel转码。

写测试代码两个目的:检验代码正确性;示范正确调用方式

@qiulang
qiulang / pm2+socket.io.md
Last active June 4, 2018 06:56
pm2 cluster mode and socket.io

如何让pm2集群设置和socket.io 配合工作不是一件简单的事。 在SO提了这个这个问题没有答复,但我自己总结些东西。简单的说就是要么强制使用websocket要么不要用sticky session.

阿里云的负载均衡器还需配置会话保持

但因为我们使用了websocket,所以容器编排没有配置stick session

我们通过https://testable.io/ 做了socket.io的压力测试