笔记

从MySQL到PostgreSQL,数据迁移实录

yar2001 发布于 2022-02-24

关于MySQL和PostgreSQL的对比,可以见这个知乎问题。 从长远的角度看,我应当关注自己技术知识的效用,选择稳定性、并发性和可靠性更强的技术栈,因此,我决定迁移到PostgreSQL中。 迁移并不是一件容易的事情,MySQL和PostgreSQL在SQL语法上有一定差异,...

阅读(526)

将PostgreSQL数据实时同步到Elasticsearch

yar2001 发布于 2022-02-24

PostgreSQL是一个类似MySQL的关系型数据库,它可以全文检索,但是需要额外插件才能支持中文。考虑到我的开发和部署环境都是通过Docker Compose进行,我倾向于使用更容器化友好的Elasticsearch。 Elasticsearch也是一个数据库,但和Postg...

阅读(1439)

CSS滚动条抖动的解决方案 兼容各类UI框架

yar2001 发布于 2021-10-30

在SPA页面中,当从有滚动条的页面进入无滚动条的页面时,会发生页面元素的抖动。初步解决这个问题的方法是让滚动条始终出现。 overflow可以放在body,也可以放在html标签中,它们的效果是相同的。 然而,一些UI库在特定情况下会向body或html中注入overflow样式...

阅读(790)

React使用Resize Observer侦听div高度变化

yar2001 发布于 2021-10-27

一些动画需要侦听div高度。最开始,我使用的是react-resize-aware框架,它通过将内嵌iframe,侦听onResize捕获事件。然而,这种方法有性能问题。后来,改用Resize Observer手写了一个侦听高度的hook。 源码 使用TypeScript和Rea...

阅读(712)

React Spring 源码解析 基于弹簧的声明式动画库

yar2001 发布于 2021-10-27

React Spring是一个基于弹簧的动画,弹簧的弹性轨迹符合人脑对真实物理的建模。因此,相比于css基于函数插值的动画,基于弹簧轨迹的动画更有助于人们在直觉上感觉“更平滑”。这就是为什么iOS的动画饱受好评的原因,因为在iOS中,大量使用了弹簧动画。 目前,React Spr...

阅读(934)

TypeScript严格类型的重要性

yar2001 发布于 2021-05-30

最近发现,使用TypeScript时,会出现一些“看代码没什么问题,但实际执行就会出错”的bug。经过调查后发现,这类bug主要原因就是实际执行时的类型和TypeScript标注的类型不一致。 例如:将Date类型转为json,再解析时,Date类型会变成字符串类型。而json类...

阅读(519)

React useImperativeHandle 踩坑记录 不要使用奇技淫巧

yar2001 发布于 2021-03-04

使用React的useImperativeHandle时,如果在传入的函数中使用了state,将会导致调用Handle时state读取为上一个状态。 解决方案: 在React相关issue中有人讨论了这个问题,FredyC说 That’ s a pretty comm...

阅读(2295)

正则表达式中匹配向前、向后排除或包含的方法

yar2001 发布于 2021-02-11

每次遇到这类需求时,都要搜索好久,并且很多关于正则表达式的资料不会很深入,故特此记录。 肯定式向前查找 匹配字符序列『Start』后跟一个空格和Test字符序列(不区分大小写)正则模式:Start(?= Test)匹配字符序列『some』,如果在同一句子中还存在字符序列some正...

阅读(1334)

JavaScript存储坐标数据:三维对象、一维对象和Map的性能对比

1

yar2001 发布于 2020-11-07

我在游戏开发过程中,遇到了用于存储坐标的需求。每个坐标对应着一个数据,在游戏过程中,需要不定期对特定坐标进行的存取。 假设位于一个长宽高为64X64X64的空间,那么一共有262,144个坐标需要储存。不考虑空间复杂度,目前有三种思路: 通过三维对象存储坐标 第一层对象存储所有x...

阅读(1246)