me

手写instanceof

September 01, 2021
手写instanceof
hard-writeinstanceof

最长递增子序列

August 02, 2021
问题描述 给定一个字符串 text, 求text的一个子序列长度,使得这个子序列单调递增,且子序列的长度尽可能大。 思路 最长公共子序列 求 text 的最长递增子序列,其实就是求 text 和 text_sorted 的最长公共子序列,其中 text_sorted 是 text…
LIS

记一次 http 缓存锁的探索

December 08, 2020
这次记录起源来自思否上的一个问题: node阻塞问题怎么解决 根据问题描述,给定以下两段代码 在浏览器中开两个tab访问, 可以观测到第二个tab明显的阻塞。 理论分析 简单看下两段脚本,可以看出是在模拟 node 针对 cpu…

如何实现锚点定位双向更新

December 02, 2020
在一些静态站点,页面滑动,页面大纲会随着页面滑动对应更新,如下图 image-2020120218021947…

如何拦截node的require函数

October 10, 2020
都说知其然而知其所以然,require是我们做node开发接触最多的一个函数,了解require的原理有助对node模块系统的理解,还可以打出很多骚操作。 我比较喜欢带着问题去思考学习,所以这里也先来看两个例子。 问题 jest module mock jest 对 module…

用户行为轨迹回放

September 09, 2020
这是在公司分享的文本整理,删除敏感数据后的 PPT…

深入理解git

August 12, 2020
深入探索git底层原理以及常用操作 git (分布式版本管理系统) 是目前使用最广泛的一个版本控制系统,知其然以及知其所以然能帮助我们在开发过程中快速定位问题。 git 底层 git 是一个内容寻址文件系统,核心部分就是一个简单的 key-value 键值数据库,key…

如何实现一个命令行的进度条

August 08, 2020
很多CLI工具为了提高DX,在做耗时长的工作时,都会在命令行显示一个进度条。web端的进度条写多了,命令行的进度条还没写过,所以这里造个简易轮子,了解下原理。 任务分解 分解下任务,要实现一个进度条,要做到以下工作 传入一个进度数值X,绘制100%的进度容器和X…

webpack hash 实现以及nginx的hash实现对比

August 06, 2020
webpack 使用 node 的 包生成对应的文件的签名, 源码, 只对文件内容 hash,文件修改时间发生变化,而内容不变,则生成的文件摘要也无变化。 crypto 在当前支持的 openssl 算法可以通过 以下是生成摘要的简单 demo 验证如下: webpack…

v8 中的内存管理

July 09, 2020
前置: v8中数据主要分到两块存储,分别是堆栈 js有7种基本数据类型和一个object…

如何在 nodejs 内解析其它脚本

July 08, 2020
原题: 启动一个 Node Server,通过这个 Server 访问一个 php 文件,怎么输出运行解析 php 后的结果? 不会 php,用 python 意思一下,理论上是一样的。 给定一个 python 脚本, 如果获取其执行结果 主旨思想是在 node…

nest 中 IoC & DI 的实现

July 05, 2020
nest 是一款构建高效,可扩展的 Node.js 服务器端应用程序的框架。 nest 里高度使用了控制反转IoC的设计思想。for example 上述源码来自 nestjs 官方文档,可以看到在 nest…

搜索

July 05, 2020
搜索一般指在有限的状态空间中进行枚举,通过穷尽所有的可能来找到符合条件的解或者解的个数。 根据搜索方式的不同,搜索算法可以分为 DFS,BFS,双向搜索,A*算法等。这里只介绍 DFS/BFS,以及发生在 DFS 上一种技巧-回溯。 DFS DFS…

node CLS 全链路追踪以及其实现原理

June 07, 2020
考虑这样一个问题,在复杂系统中,每一个请求过来,我们会调用不同的异步服务(db, fs,微服务等等),调用过程中如果某一环节出现问题,如何去做链路追踪,或者说如何获取到原始的请求上下文。 在 JAVA/C++ 等多线程服务中,可以通过 TLS(Thread-local…

前端常见安全题

May 07, 2020
XSS XSS 分类 存储型 XSS 攻击者将 xss 脚本存储在服务端数据库,通常出现在论坛/评论等地方 反射型 XSS 通过请求参数将恶意脚本发送到站点页面存在漏洞的地方,脚本反射在新渲染的页面并执行,通常出现在搜索框 DOM 型 XSS 特殊的反射型 XSS…

最长上升子序列

May 06, 2020
300.最长上升子序列 435.无重叠区间 646.最长数对链 452.用最少数量的箭引爆气球 300. 最长上升子序列 解法一 定义 dp[i] 为nums中以i结尾的最大子序列长度,那么对任意j($j > 0 & j < nums.length…

字符串匹配

May 05, 2020
字符串匹配 字符串搜索算法(String searching algorithms)又称字符串比对算法(string matching algorithms…

如何实现一个并发控制的任务管理器

May 05, 2020
实现要点 首先需要一个缓冲队列,将push的任务存储起来 每次任务跑完之后需要告知调度器跑完了 调度器接受到跑完的信息后去处理新的调度 代码

linux 软链

May 05, 2020
linux 软链 linux 硬链接和软链接 linux 链接分为两种,分别是硬链接和软链接。 linux 中的文件都有个文件索引(Inode Index…

React 的 fiber 模型

May 05, 2020
Why Fiber React 是声明式的,也就是说我们只需要关心 state 的变化,至于 state 变化了,其内部如何变动,react 内部都会去做管理。react 把这种内部管理过程叫做Reconciliation。 Fiber 之前的协调算法叫做 stack…

redux 源码浅析

August 10, 2019
redux 源码浅析 最近在把主力开发框架从 vue 转化到 react,对 redux 相关比较感兴趣,拉了 redux 的源码看了下,这里做下源码分析,方便有需要的同学取用。 什么是 redux,为什么用 redux…