wxsm's space
  • Jul 28, 2021

    React Hooks vs. VCA

    关于 hooks 与 VCA:

    二者为了共同的目的,在接近的时间点,以非常相似但是又带有本质区别的方式,推出了各自对于未来前端代码结构发展的新思路。本文在对二者做一些简单介绍的同时,也会重点关注二者之间的统一与区别。

  • Jul 26, 2021

    比较简单的 GitHub 加速方式

    在不想用全局 vpn 的情况下,可以用 host 加速:

    1. 访问 https://github.com.ipaddress.com/,获得 ip 地址
    2. 访问 http://github.global.ssl.fastly.net.ipaddress.com,获得 ip 地址
    3. 将其添加到 host 文件内,如:
    199.232.5.194 github.global.ssl.fastly.net
    140.82.112.4 github.com
    

    此办法也适用于其它部分网站,如 gitlab.com 等:

    172.65.251.78 gitlab.com
    

    附:开源的 host 切换软件 SwitchHosts

  • 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

    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": {
                // ...
              },
              // ...
            }
          ]
        }
      ]
    }
    

    想要实现:

    1. 查找名为 CERNaffiliation 的所在国家
    2. 查找获奖次数大于等于 5 次的 familyName
    3. 查找 University of California 的不同所在位置总数
    4. 查找至少一个诺贝尔奖授予组织而非个人的年份总数
  • Jan 22, 2021

    从零开始

    《Re: 从零开始的异世界生活》,简称 Re0,是一部披着后宫外衣的,拥有悲剧内核的推理番(误)。

  • Nov 19, 2020

    Auto Changelog with GitLab

    上一篇博文 Integrate Renovate with GitLab 中介绍了为私有代码仓库与私有源提供依赖自动检测更新并发起 Merge Request 的方式。Renovate 可以自动通过 Release Notes 获取到版本之间的更新日志,并在 MR 中展示,这为执行合并的评审人提供了极大的便利。

    接下来需要解决另一个问题:如何为分散在各处的私有依赖自动生成更新日志?

  • Nov 09, 2020

    Integrate Renovate with GitLab

    企业项目群中往往会有部分代码逻辑需要公用,将其抽离作为公共包发布到私有源的做法是比较优雅的解决方式。但是这么做的话后期需要面临一个问题:当一个公共依赖包的使用者数量逐渐庞大的时候,如何保证当此包发布新版本时,所有使用者都能尽可能快地得到更新?

    传统的解决方案:

    1. 手工对所有项目逐个升级。这种办法相当繁琐,且容易产生遗漏,当项目数量足够庞大的时候,发布一次将会时相当痛苦的体验;
    2. 在依赖安装时指定版本为 latest。这种办法虽然能保证每次安装时都能得到最新版本,但是却有诸多弊端,如:
      1. 无法保证依赖的安全性,有可能一次更新不慎造成大面积的瘫痪;
      2. 对「依赖锁」不友好,如 yarn.lock 等。

    因此,如何使这个过程变得优雅,是一个亟待解决的问题。

Older  →