Now vibe coding, so learning hammer FE ?
《我们将 Node.js 内存占用减少了一半》

标签:#后端 #Node.js #V8 #性能优化 #内存管理 #Docker

本文介绍了通过启用 V8 引擎的指针压缩(Pointer Compression)技术,在不修改代码的情况下将 Node.js 应用内存占用减少约 50%,且仅带来 2-4% 的平均延迟开销,同时显著降低 P99 延迟。Cloudflare 与 Igalia 合作解决了历史性的"4GB 内存笼"限制,使每个 Worker 线程拥有独立的 4GB 压缩内存空间。

文章要点:
- 技术原理:指针压缩将 64 位指针转为 32 位偏移量,使每个指针从 8 字节减至 4 字节,内存占用减半,代价是每次堆访问需额外的加减法运算
- 历史障碍:此前 Node.js 未默认启用是因所有 Worker 线程共享单一 4GB 内存空间,2024 年 Cloudflare 与 Igalia 合作推出 IsolateGroups 功能,使每个 V8 实例拥有独立的 4GB 压缩内存笼
- 实验结果:在 Next.js 电商应用基准测试中,指针压缩实现内存减半(2GB→1GB),平均延迟仅增加 2.5-4.2%,但 P99 延迟降低 7-43%,最大延迟降低 6-38%,因更小的堆减少了 GC 暂停时间
- 业务价值:可显著降低 Kubernetes 集群成本、提升多租户 SaaS 密度、支持边缘计算部署、增加 WebSocket 并发连接数
- 兼容性限制:每个 V8 实例仍受 4GB 堆内存限制;使用旧版 NAN 的原生插件不兼容,但 Node-API 插件不受影响
- 使用方式:通过 platformatic/node-caged Docker 镜像一键替换官方 Node.js 镜像即可启用

链接:https://blog.platformatic.dev/we-cut-nodejs-memory-in-half
十亿行数据的虚拟滚动技术——HighTable 的五大实现方案

标签:#前端 #React #虚拟滚动 #性能优化 #大数据表格 #HighTable #DOM优化

总结:本文介绍了 HighTable 组件实现十亿级数据表格渲染的五大核心技术:懒加载仅获取可视区域数据、表格切片只渲染可见行、无限像素技术通过缩放滚动条突破浏览器高度限制、双模式滚动实现全局跳转与本地精确定位、两步随机访问分离垂直与水平滚动逻辑。这些方案完全基于原生 HTML 与 CSS,无需 Canvas 或自定义滚动条即可在浏览器中流畅处理海量数据。

文章要点:
- 技术1:懒加载:仅加载可视区域单元格数据,通过 DataFrame 接口异步获取并缓存数据,将 1TB 数据缩减为仅需加载约 3KB 的可见区域
- 技术2:表格切片:引入 Canvas 层作为定位参考,仅渲染可见行(约 30 行)而非全部十亿行,将 DOM 元素数量控制在恒定范围内
- 技术3:无限像素:设置 Canvas 最大高度(800 万像素),超过阈值时通过 downscaleFactor 缩放滚动条分辨率,突破浏览器元素高度限制(Firefox 约 1700 万像素)
- 技术4:像素级精确滚动:实现本地滚动(小幅度移动保持行连续性)与全局滚动(大幅度跳转)双模式,通过 globalAnchor 和 localOffset 状态管理,确保 2 万亿行内可达任意像素
- 技术5:两步随机访问:解耦垂直与水平滚动逻辑,先计算目标位置并垂直滚动,渲染完成后再处理水平定位与焦点设置,支持键盘导航和程序化跳转至任意单元格

链接:https://rednegra.net/blog/20260212-virtual-scroll/
TypeScript 泛型趣味实践

标签:#TypeScript #泛型 #函数重载 #TanStack #条件类型

文章深入探讨了如何利用 TypeScript 泛型、条件类型和函数重载,为 TanStack Start 的 Server Function 构建一个完全类型安全的查询选项封装函数。通过一个真实的场景——确保带参数和不带参数的 Server Function 都能被正确推断返回类型和参数类型——展示了从基础泛型约束到复杂类型体操的完整实现路径,最终解决了可选参数与类型推断的冲突问题。

文章要点:
- 通过为 TanStack Start 的 Server Function 封装 refetchedQueryOptions 工具函数,解决查询数据返回类型为 any 的类型安全问题
- 初始方案使用泛型约束 <T extends (arg: { data: any }) => Promise<any>> 提取参数和返回类型,但无法处理无参函数的可选参数场景
- 利用条件类型 infer 关键字创建类型工具 ServerFnArgs 来提取函数参数类型,并判断函数是否有参数
- 通过 TypeScript 函数重载(Overloading)定义两个签名:一个用于带参数的 Server Function,一个用于无参函数,从而精确控制参数的可选性
- 展示了泛型、条件类型与函数重载结合使用的高级技巧,实现编译时严格的类型检查和完美的类型推断

链接:https://frontendmasters.com/blog/fun-with-typescript-generics/ Fun with TypeScript Generics
Lodash 已经纳入了 openJS 基金会,现在是完全社区主导!
npx is-my-node-vulnerable 查当前 node 版本是否安全
#AI AI正重塑软件工程:初级岗位可能萎缩也可能跨行业爆发,技能要求从写代码转向“懂AI+验证AI”,角色从执行者进化为系统编排者,T型通才胜过单一专才,传统CS教育正被实战导向新路径补充——未来两年,能持续学习、善用AI放大能力、保持批判思维的工程师将主导这场变革。

https://baoyu.io/translations/2026/01/12/next-two-years-software-engineering
Back to Top