2026 第 16 周
更新:
- 旧人不知我近况,新人不知我过往
-
获取信息不代表你真的掌握了知识和技能 Ref
- 一人干活,众人围观; 礼崩乐坏; 悲观者正确,乐观者前行
- Git 中 rebase 和 merge 差异
- 宏任务: setTimeout/setInterval/setImmediate[时间驱动], postMessage[跨上下文 - iframe/window/worker, 设计是为了 ipc; 事件驱动], MessageChannel[优先级比 setTimeout/setInterval 更高, 并且不受后台 Tab 影响; 运行时刚好满足调度器], XHR/Fetch/WebSocket, Event, Scheduler: postTask() - 带优先级[user-blocking/user-visible/background]的智能宏任务; 微任务: queueMicrotask(), Promise.then/catch/finally, MutationObserver; 特殊任务: requestAnimationFrame[Paint 之前(后台标签会降频)], requestIdleCallback[Paint 之后(空闲时) - 不稳定]
-
在不确定中作出判断,在系统之间进行翻译,在现实中承担后果 Ref
-
你可以摆, 可以摸鱼, 但不能真的菜, 该拿出手的时候必须拿得出手 Ref
- QWenCode, fatetell - 比较火的运势
-
總有一天你會靜下心來,像個局外人一樣,回顧自己的故事,然後笑著搖搖頭,浮生不過夢一場 - 弘一法師
-
1.一个问题能否被形式化并由机器求解。2.应该选什么表示、算法或计算模型来求解。3.在时间、空间、数据和硬件约束下,能否把它做到足够可行。一个问题可计算,但如果是NP-hard的,实践中跟不可计算差别不大。4.如何把它实现为可运行、可扩展、可验证的系统。 Ref
-
遇到烂人烂事时,立刻认怂,迅速抽身 Ref
- Math.clz32()
- TaskController, AbortController
- stale, indicator, sentinel, migrate, evict - Evict Policy
-
別在不快樂的地方待太久 Ref
-
a) 质疑每项需求[绝大多数都是愚蠢的] b)删除需求中所以不必要的部分和流程[规避以防万一] c)简化和优化[不要去优化一个本不应该存在的东西] d) 加快周转时间 e) 自动化 Ref
-
type _ParkedCoverage = [ Exclude<Extract<TaskState["status"], `parked:${string}`>, ParkedStatus>, ] extends [never] ? true : never; const _assertParkedCoverage: _ParkedCoverage = true; void _assertParkedCoverage; -
// 红黑树 // https://www.zhihu.com/question/311272920/answer/2020430696246694880 // 叶子节点是黑 - null // 从任意节点到其所有叶子路径上,黑色节点数量相同 // 插入节点是红 // 红红 - 违规,需要按下面流程处理 // P -> parent, U -> uncle, G -> grandparent, N 新插入节点 while (color(parent(N)) == RED) { P = parent(N); G = parent(P); if (P == left(G)) { U = right(G); if (color(U) == RED) { // Case 1:recolor setBlack(P); setBlack(U); setRed(G); N = G; // ← 向上推进(关键) } else { if (N == right(P)) { // Case 2:先旋(LR) N = P; // ← 关键:重定位 N leftRotate(N); // 实际是对原 P 旋 } // Case 3 P = parent(N); // ← 重新取(因为上面可能旋过) G = parent(P); setBlack(P); setRed(G); rightRotate(G); break; // ← 不再向上 } } else { // 对称(P 在右侧) U = left(G); if (color(U) == RED) { // Case 1 setBlack(P); setBlack(U); setRed(G); N = G; } else { if (N == left(P)) { // Case 2(RL) N = P; rightRotate(N); } // Case 3 P = parent(N); G = parent(P); setBlack(P); setRed(G); leftRotate(G); break; } } } setBlack(root); /* Case1, ReColor P -> 黑 U -> 黑 G -> 红 N = G (向上继续检查) Case2, Rotate 之后得到 Case3 内侧节点: 左子树里:右孩子(LR) -> LeftRotate 右子树里:左孩子(RL) -> RightRotate Case3, ReColor + Rotate 外侧节点: 左子树:左孩子(LL) 右子树:右孩子(RR) P → 黑 G → 红 对 G 做旋转(右旋) */