Apr 06, 2021
Apr 03, 2021
正则断言Assertions include boundaries, which indicate the beginnings and endings of lines and words, and other patterns indicating in some way that a match is possible (including look-ahead, look-behind, and conditional expressions).
断言是正则表达式组成的一部分,包含两种断言。本文记录了一些常用断言。
Mar 15, 2021
小程序单元测试最佳实践微信小程序单元测试的可查资料少得可怜,由于微信官方开发的自动化测试驱动器 miniprogram-automator
不开源,唯一靠谱的地方只有这 一份简单的文档 。然而实际使用下来发现文档介绍的方式有不少问题。 Feb 18, 2021
Feb 17, 2021
MongoDB Aggregate 4 例有数据格式如下:
{ "id": "745", "knownName": { "en": "A. Michael Spence", "se": "A. Michael Spence" }, "familyName": { // 结构同上,下同 // .. }, "orgName": { // orgName 当获奖者为组织时出现 // .. }, "gender": "male", "nobelPrizes": [ { "awardYear": "2001", // ... "affiliations": [ { "name": { "en": "Stanford University", // ... }, "city": { // ... }, "country": { // ... }, // ... } ] } ] }
想要实现:
- 查找名为
CERN
的affiliation
的所在国家 - 查找获奖次数大于等于 5 次的
familyName
- 查找
University of California
的不同所在位置总数 - 查找至少一个诺贝尔奖授予组织而非个人的年份总数
- 查找名为
Jan 22, 2021
Nov 19, 2020
Auto Changelog with GitLab上一篇博文
Integrate Renovate with GitLab 中介绍了为私有代码仓库与私有源提供依赖自动检测更新并发起 Merge Request 的方式。Renovate 可以自动通过 Release Notes 获取到版本之间的更新日志,并在 MR 中展示,这为执行合并的评审人提供了极大的便利。接下来需要解决另一个问题:如何为分散在各处的私有依赖自动生成更新日志?
Nov 09, 2020
Integrate Renovate with GitLab企业项目群中往往会有部分代码逻辑需要公用,将其抽离作为公共包发布到私有源的做法是比较优雅的解决方式。但是这么做的话后期需要面临一个问题:当一个公共依赖包的使用者数量逐渐庞大的时候,如何保证当此包发布新版本时,所有使用者都能尽可能快地得到更新?
传统的解决方案:
- 手工对所有项目逐个升级。这种办法相当繁琐,且容易产生遗漏,当项目数量足够庞大的时候,发布一次将会时相当痛苦的体验;
- 在依赖安装时指定版本为
latest
。这种办法虽然能保证每次安装时都能得到最新版本,但是却有诸多弊端,如:- 无法保证依赖的安全性,有可能一次更新不慎造成大面积的瘫痪;
- 对「依赖锁」不友好,如
yarn.lock
等。
因此,如何使这个过程变得优雅,是一个亟待解决的问题。
Nov 02, 2020
Publish using GitHub Action本文是一些 GitHub Actions 常用发布动作的总结。
强烈建议将所有 Publish actions 分开执行,不要集中到一个 Workflow 内。原因是如果其中一个动作因为某些原因失败了,GitHub 目前只能重启整个 Workflow,而如果 Workflow 内某个 Job 已经成功了,那么该 Job 下一次执行必然是失败(因为此类任务一般不能对同一个版本号执行两次,发布成功一次以后第二次尝试将会被拒绝发布),因此这一个提交的 Workflow 将永远不可能成功。
需要注意的是,以下所提到的
secrets.GITHUB_TOKEN
均是 GitHub Action 内置的 Access Token,无需自行创建。而其它 secrets 则需要在项目主页
->Settings
->Secrets
处创建。Oct 26, 2020
IDEA 为 Markdown 文件默认启用 SoftWrap应该 JetBrains 家的所有 IDE 都有这个配置。习惯了用 Markdown 写博客的人每次都要手动点一下 SoftWrap 挺烦的。后来发现了一个配置可以帮我省去这一步:
打开设置,找到:
Editor
>General
>Soft Wraps
,将Soft-wrap files
选项勾上即可。IDE 默认已经填上了*.md; *.txt; *.rst; *.adoc
,因此不需要再做别的事情。这样一来,每次只要打开以上格式的文件,编辑器就会自动开启 SoftWrap,一劳永逸。
Older →