<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>简希博客</title>
    <link>https://climberzbm.cn</link>
    <description>个人技术博客，记录学习与成长</description>
    <language>zh-CN</language>
    <atom:link href="https://climberzbm.cn/rss" rel="self" type="application/rss+xml"/>
    
    <item>
      <title>React 自定义 Hook 的依赖黑洞：六个被忽视的闭包过期与内存泄漏场景</title>
      <link>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1785585665562</link>
      <description>自定义 Hook 的依赖数组和清除函数是实现复用的关键，也是 Bug 的温床。本文从闭包过期、定时器泄漏、事件监听残留三个维度，用正反例剖析六个典型陷阱，给出工程级的规范化修复方案。</description>
      <pubDate>Sat, 01 Aug 2026 12:01:05 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1785585665562</guid>
    </item>
    
    <item>
      <title>Vite ESM 产物与 V8 解析引擎的协同优化：从模块图谱到字节码的加载链路治理</title>
      <link>https://climberzbm.cn/posts/vite-esm-产物与-v8-解析引擎的协同优化-从模块图谱到字节码的加载链路治理-1785549765486</link>
      <description>深入剖析 Vite 开发模式下的 ESM 模块加载如何触发 V8 的惰性解析与流式编译，揭示模块图谱结构对首屏性能的影响，并提供从依赖预构建到模块预热的体系化优化策略。</description>
      <pubDate>Sat, 01 Aug 2026 02:02:45 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/vite-esm-产物与-v8-解析引擎的协同优化-从模块图谱到字节码的加载链路治理-1785549765486</guid>
    </item>
    
    <item>
      <title>React 自定义 Hook 的依赖黑洞：六个被忽视的闭包过期与内存泄漏场景</title>
      <link>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1785549707048</link>
      <description>自定义 Hook 的依赖数组和清除函数是实现复用的关键，也是 Bug 的温床。本文从闭包过期、定时器泄漏、事件监听残留三个维度，用正反例剖析六个典型陷阱，给出工程级的规范化修复方案。</description>
      <pubDate>Sat, 01 Aug 2026 02:01:47 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1785549707048</guid>
    </item>
    
    <item>
      <title>Node.js 与 ChatGPT API 的流式响应实践：从阻塞轮询到 Server-Sent Events 的架构演进</title>
      <link>https://climberzbm.cn/posts/node-js-与-chatgpt-api-的流式响应实践-从阻塞轮询到-server-sent-events-的架构演进-1785499255629</link>
      <description>深入剖析 Node.js 对接 ChatGPT API 的两种数据传输范式：阻塞轮询与 SSE 流式传输。从 ReadableStream 底层原理到生产级背压控制，用可运行的代码正反例厘清架构取舍。</description>
      <pubDate>Fri, 31 Jul 2026 12:00:55 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/node-js-与-chatgpt-api-的流式响应实践-从阻塞轮询到-server-sent-events-的架构演进-1785499255629</guid>
    </item>
    
    <item>
      <title>JavaScript 性能预算体系：从指标定义到 CI 门禁的工程化落地</title>
      <link>https://climberzbm.cn/posts/javascript-性能预算体系-从指标定义到-ci-门禁的工程化落地-1785463489339</link>
      <description>性能预算不是拍脑袋的数字游戏。本文从 Lighthouse 指标筛选、预算基线制定、webpack/Vite 构建集成到 CI 自动化拦截，构建一套完整的 JavaScript 前端性能预算工程化体系，让性能回归可量化、可追溯、可阻断的工程防线。</description>
      <pubDate>Fri, 31 Jul 2026 02:04:49 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/javascript-性能预算体系-从指标定义到-ci-门禁的工程化落地-1785463489339</guid>
    </item>
    
    <item>
      <title>Node.js 流式管道实战：用 Transform 流实现 ChatGPT 响应的实时转译与速率控制</title>
      <link>https://climberzbm.cn/posts/node-js-流式管道实战-用-transform-流实现-chatgpt-响应的实时转译与速率控制-1785412858906</link>
      <description>深入 Node.js Stream 管道机制，手写 Transform 流对 ChatGPT SSE 响应做实时转译、节流与缓冲合并，结合 React useReducer 构建稳定可恢复的流式消费管道。</description>
      <pubDate>Thu, 30 Jul 2026 12:00:58 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/node-js-流式管道实战-用-transform-流实现-chatgpt-响应的实时转译与速率控制-1785412858906</guid>
    </item>
    
    <item>
      <title>GPT API 流式响应的工程化治理：背压控制、断线重连与消费端的 5 层防线</title>
      <link>https://climberzbm.cn/posts/gpt-api-流式响应的工程化治理-背压控制-断线重连与消费端的-5-层防线-1785326451454</link>
      <description>前端侧消费 ChatGPT Streaming Response 时，简易实现会面临内存溢出、网络断开后数据丢失、render 频率过高这三座大山。本文用 5 层防线构建生产级流式处理器，每一层都附带正反例代码对比。</description>
      <pubDate>Wed, 29 Jul 2026 12:00:51 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/gpt-api-流式响应的工程化治理-背压控制-断线重连与消费端的-5-层防线-1785326451454</guid>
    </item>
    
    <item>
      <title>将 ChatGPT 嵌入 TypeScript 编译管线：用 CLI 工具自动化生成类型声明与单元测试</title>
      <link>https://climberzbm.cn/posts/将-chatgpt-嵌入-typescript-编译管线-用-cli-工具自动化生成类型声明与单元测试-1785240043970</link>
      <description>手动编写上百个 API 响应类型和单元测试的样板代码是一种浪费。本文提出一种工程化方案——用 ChatGPT API 作为编译管线中的代码生成器，通过 TypeScript Compiler API 提取接口签名，结合结构化 Prompt 和确定性校验层，将 AI 输出可控地融入 CI 流程。</description>
      <pubDate>Tue, 28 Jul 2026 12:00:43 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/将-chatgpt-嵌入-typescript-编译管线-用-cli-工具自动化生成类型声明与单元测试-1785240043970</guid>
    </item>
    
    <item>
      <title>V8 去优化的 5 个隐蔽触发场景：从代码形状到性能回退的实战对照</title>
      <link>https://climberzbm.cn/posts/v8-去优化的-5-个隐蔽触发场景-从代码形状到性能回退的实战对照-1785204220565</link>
      <description>TurboFan 的激进优化不是免费的午餐——一次不经意的参数类型切换就能让热函数退回解释执行。本文用 5 个可复现的场景 + 正反例对照，拆解 V8 去优化的触发机制、d8 诊断方法与规避策略。</description>
      <pubDate>Tue, 28 Jul 2026 02:03:40 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/v8-去优化的-5-个隐蔽触发场景-从代码形状到性能回退的实战对照-1785204220565</guid>
    </item>
    
    <item>
      <title>JavaScript 垃圾回收的性能暗面：从新生代 Scavenge 到老生代 Mark-Compact 的 GC 工程化避坑</title>
      <link>https://climberzbm.cn/posts/javascript-垃圾回收的性能暗面-从新生代-scavenge-到老生代-mark-compact-的-gc-工程化避坑-1785204214313</link>
      <description>V8 的垃圾回收并非免费午餐。本文从 Orinoco 并行回收器入手，拆解新生代 Scavenge 与老生代 Mark-Compact 的触发条件与性能代价，剖析短命对象池化、Hidden Class 迁移污染与增量标记的 stop-the-world 规避策略，提供 5 个生产级场景下的 GC 友好编码范式。</description>
      <pubDate>Tue, 28 Jul 2026 02:03:34 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/javascript-垃圾回收的性能暗面-从新生代-scavenge-到老生代-mark-compact-的-gc-工程化避坑-1785204214313</guid>
    </item>
    
    <item>
      <title>用 TypeScript 类型系统为 Vue 3 组件建立编译时 API 契约</title>
      <link>https://climberzbm.cn/posts/用-typescript-类型系统为-vue-3-组件建立编译时-api-契约-1785204109306</link>
      <description>当 Vue 3 的 Props 遇上 TypeScript 的泛型约束，如何在编译期就能拦住所有非法传参？本文从 defineProps 泛型传参出发，层层递进到 emits 签名约束、模板 ref 类型推导与 provide/inject 的 Tokens 模式，构建一个零运行时开销的组件类型安全体系。</description>
      <pubDate>Tue, 28 Jul 2026 02:01:49 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/用-typescript-类型系统为-vue-3-组件建立编译时-api-契约-1785204109306</guid>
    </item>
    
    <item>
      <title>React 渲染性能的微观优化：从 useMemo 误用到 Fiber 调和机制的实战剖析</title>
      <link>https://climberzbm.cn/posts/react-渲染性能的微观优化-从-usememo-误用到-fiber-调和机制的实战剖析-1785153642099</link>
      <description>跳出 useMemo/useCallback 的初级用法，深入 React Fiber 调和机制，探讨 props 引用稳定性、Context 拆分、列表 key 策略与状态提升边界的性能优化决策。</description>
      <pubDate>Mon, 27 Jul 2026 12:00:42 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-渲染性能的微观优化-从-usememo-误用到-fiber-调和机制的实战剖析-1785153642099</guid>
    </item>
    
    <item>
      <title>React 与 ChatGPT API 集成的流式响应工程化实践：从单次请求到 Server-Sent Events 的架构演进</title>
      <link>https://climberzbm.cn/posts/react-与-chatgpt-api-集成的流式响应工程化实践-从单次请求到-server-sent-events-的架构演进-1785117843942</link>
      <description>深入探讨 React 应用中集成 ChatGPT Streaming API 的工程化方案，从基础 fetch 到 SSE 解析、自定义 Hook 封装、AbortController 竞态治理，构建可复用的流式对话架构。</description>
      <pubDate>Mon, 27 Jul 2026 02:04:03 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-与-chatgpt-api-集成的流式响应工程化实践-从单次请求到-server-sent-events-的架构演进-1785117843942</guid>
    </item>
    
    <item>
      <title>Vue 3 + TypeScript 编译期性能契约：用泛型 Props 和 defineModel 消除运行时开销</title>
      <link>https://climberzbm.cn/posts/vue-3-typescript-编译期性能契约-用泛型-props-和-definemodel-消除运行时开销-1785117773736</link>
      <description>Vue 3 配合 TypeScript 可以在编译阶段就拦截大量性能隐患。本文从 defineProps 泛型、defineModel 类型推导、computed 惰性求值三个维度，展示如何用类型系统构建编译期性能契约，配合 Vite 的 HMR 极速反馈形成闭环。</description>
      <pubDate>Mon, 27 Jul 2026 02:02:53 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/vue-3-typescript-编译期性能契约-用泛型-props-和-definemodel-消除运行时开销-1785117773736</guid>
    </item>
    
    <item>
      <title>手写 Vite 构建耗时分析插件：用 TypeScript 精准定位编译瓶颈</title>
      <link>https://climberzbm.cn/posts/手写-vite-构建耗时分析插件-用-typescript-精准定位编译瓶颈-1785117769626</link>
      <description>当项目模块数破千后，Vite 生产构建动辄 3-5 分钟。与其盲目猜测耗时来源，不如用 TypeScript 手写一个 Rollup 级构建分析插件，精准测量每个阶段、每个插件的耗时分布。本文从源码级 Hook 时序讲起，给出可直接落地的生产级实现。</description>
      <pubDate>Mon, 27 Jul 2026 02:02:49 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/手写-vite-构建耗时分析插件-用-typescript-精准定位编译瓶颈-1785117769626</guid>
    </item>
    
    <item>
      <title>React 自定义 Hook 的依赖黑洞：六个被忽视的闭包过期与内存泄漏场景</title>
      <link>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1785067258448</link>
      <description>自定义 Hook 的依赖数组和清除函数是实现复用的关键，也是 Bug 的温床。本文从闭包过期、定时器泄漏、事件监听残留三个维度，用正反例剖析六个典型陷阱，给出工程级的规范化修复方案。</description>
      <pubDate>Sun, 26 Jul 2026 12:00:58 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1785067258448</guid>
    </item>
    
    <item>
      <title>TypeScript satisfies 与 as const 的工程化实践：从类型推导到不可变契约的 5 个关键场景</title>
      <link>https://climberzbm.cn/posts/typescript-satisfies-与-as-const-的工程化实践-从类型推导到不可变契约的-5-个关键场景-1785031439566</link>
      <description>TypeScript 4.9 的 satisfies 和 as const 不仅是语法糖，更是工程化类型安全的两大基石。本文通过 5 个真实场景，演示如何用 satisfies 实现无损类型推导、用 as const 锁定不可变契约，以及两者的协同威力。</description>
      <pubDate>Sun, 26 Jul 2026 02:03:59 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/typescript-satisfies-与-as-const-的工程化实践-从类型推导到不可变契约的-5-个关键场景-1785031439566</guid>
    </item>
    
    <item>
      <title>React 自定义 Hook 的依赖黑洞：六个被忽视的闭包过期与内存泄漏场景</title>
      <link>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1785031433839</link>
      <description>自定义 Hook 的依赖数组和清除函数是实现复用的关键，也是 Bug 的温床。本文从闭包过期、定时器泄漏、事件监听残留三个维度，用正反例剖析六个典型陷阱，给出工程级的规范化修复方案。</description>
      <pubDate>Sun, 26 Jul 2026 02:03:53 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1785031433839</guid>
    </item>
    
    <item>
      <title>React 自定义 Hook 的依赖黑洞：六个被忽视的闭包过期与内存泄漏场景</title>
      <link>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1784980843709</link>
      <description>自定义 Hook 的依赖数组和清除函数是实现复用的关键，也是 Bug 的温床。本文从闭包过期、定时器泄漏、事件监听残留三个维度，用正反例剖析六个典型陷阱，给出工程级的规范化修复方案。</description>
      <pubDate>Sat, 25 Jul 2026 12:00:43 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-自定义-hook-的依赖黑洞-六个被忽视的闭包过期与内存泄漏场景-1784980843709</guid>
    </item>
    
    <item>
      <title>React 组件 API 契约的类型量化：用 Discriminated Union 将运行时错误前移至编译期</title>
      <link>https://climberzbm.cn/posts/react-组件-api-契约的类型量化-用-discriminated-union-将运行时错误前移至编译期-1784945331904</link>
      <description>Props 设计缺乏约束是 React 项目中 70% 生产故障的根源。本文从状态互斥、数据形态分支、异步过渡三个场景出发，展示如何用 TypeScript Discriminated Union 将不合法的组件组合在编译期直接拦截，彻底消除「不可能的状态」。</description>
      <pubDate>Sat, 25 Jul 2026 02:08:51 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-组件-api-契约的类型量化-用-discriminated-union-将运行时错误前移至编译期-1784945331904</guid>
    </item>
    
    <item>
      <title>Vite CSS 工程化治理：从原子化冲突到零冗余产物的构建链优化</title>
      <link>https://climberzbm.cn/posts/vite-css-工程化治理-从原子化冲突到零冗余产物的构建链优化-1784944923215</link>
      <description>Vite 的 CSS 管线远比表面复杂——PostCSS 插件链路、CSS Modules 作用域隔离、原子化 CSS 按需生成、Lightning CSS 编译加速，每一步的配置取舍都直接决定生产包体积与运行时性能。本文拆解一条从开发体验到构建产物的完整 CSS 工程化链路。</description>
      <pubDate>Sat, 25 Jul 2026 02:02:03 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/vite-css-工程化治理-从原子化冲突到零冗余产物的构建链优化-1784944923215</guid>
    </item>
    
    <item>
      <title>React useMemo 与 Vue computed 的缓存哲学对决：从依赖追踪到底层机制的选型决策</title>
      <link>https://climberzbm.cn/posts/react-usememo-与-vue-computed-的缓存哲学对决-从依赖追踪到底层机制的选型决策-1784944920991</link>
      <description>深入对比 React useMemo/useCallback 与 Vue computed 在依赖追踪、缓存失效和重计算策略上的根本差异。通过源码级分析和正反例代码对比，揭示两者设计哲学如何影响你的组件性能。</description>
      <pubDate>Sat, 25 Jul 2026 02:02:00 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-usememo-与-vue-computed-的缓存哲学对决-从依赖追踪到底层机制的选型决策-1784944920991</guid>
    </item>
    
    <item>
      <title>Node.js 长时流式响应的工程化治理：从超时防线到背压控制的 4 层守卫</title>
      <link>https://climberzbm.cn/posts/node-js-长时流式响应的工程化治理-从超时防线到背压控制的-4-层守卫-1784894441643</link>
      <description>基于 OpenAI Streaming API 的生产级实践，拆解 Node.js 流式传输中的超时防线、连接断线检测、背压控制和 Reader-Lock 冲突处理，构建一套可复用的流式响应工程化方案。</description>
      <pubDate>Fri, 24 Jul 2026 12:00:41 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/node-js-长时流式响应的工程化治理-从超时防线到背压控制的-4-层守卫-1784894441643</guid>
    </item>
    
    <item>
      <title>TypeScript Strict 模式渐进迁移：从零严格到全量 strict 的 6 步路线图</title>
      <link>https://climberzbm.cn/posts/typescript-strict-模式渐进迁移-从零严格到全量-strict-的-6-步路线图-1784858616541</link>
      <description>TypeScript 的 strict 模式不是非 0 即 1 的开关。本文拆解 strict 家族 8 个子选项，给出从 legacy 项目到全量 strict 的 6 步渐进路线，每步都有正反例代码对比和 tsconfig 配置片段，让类型安全渐进落地而非推倒重来。</description>
      <pubDate>Fri, 24 Jul 2026 02:03:36 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/typescript-strict-模式渐进迁移-从零严格到全量-strict-的-6-步路线图-1784858616541</guid>
    </item>
    
    <item>
      <title>JavaScript 工程化规范落地实战：从 Prettier/ESLint 到 pre-commit 的完整防线</title>
      <link>https://climberzbm.cn/posts/javascript-工程化规范落地实战-从-prettier-eslint-到-pre-commit-的完整防线-1784858604613</link>
      <description>代码规范不落地等于没有。本文从 ESLint + Prettier 的协同配置讲起，结合 husky + lint-staged 构建 pre-commit 防线，用正反例展示规范自动化落地的完整链路。</description>
      <pubDate>Fri, 24 Jul 2026 02:03:24 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/javascript-工程化规范落地实战-从-prettier-eslint-到-pre-commit-的完整防线-1784858604613</guid>
    </item>
    
    <item>
      <title>JavaScript 对象属性访问的性能税：Hidden Class、内联缓存与 Megamorphic 陷阱</title>
      <link>https://climberzbm.cn/posts/javascript-对象属性访问的性能税-hidden-class-内联缓存与-megamorphic-陷阱-1784858486400</link>
      <description>从 V8 引擎的 Hidden Class 机制出发，深入剖析 JavaScript 对象属性访问的底层原理，揭示动态添加属性、delete 操作和函数实参顺序如何悄悄拖累你的运行时性能。</description>
      <pubDate>Fri, 24 Jul 2026 02:01:26 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/javascript-对象属性访问的性能税-hidden-class-内联缓存与-megamorphic-陷阱-1784858486400</guid>
    </item>
    
    <item>
      <title>Vue 3 + Vite 项目配置最佳实践：从路径别名到自动导入的 6 条黄金法则</title>
      <link>https://climberzbm.cn/posts/vue-3-vite-项目配置最佳实践-从路径别名到自动导入的-6-条黄金法则-1784772172266</link>
      <description>Vue 3 与 Vite 的组合已成为现代前端开发的标配，但项目配置中隐藏着大量反模式。本文从路径别名、环境变量、组件自动导入、SVG 管理、Proxy 配置到构建优化，给出 6 条可落地的配置最佳实践，每条都附代码对比。</description>
      <pubDate>Thu, 23 Jul 2026 02:02:52 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/vue-3-vite-项目配置最佳实践-从路径别名到自动导入的-6-条黄金法则-1784772172266</guid>
    </item>
    
    <item>
      <title>TypeScript 类型安全的 ChatGPT API 封装：从裸调 fetch 到生产级 SDK</title>
      <link>https://climberzbm.cn/posts/typescript-类型安全的-chatgpt-api-封装-从裸调-fetch-到生产级-sdk-1784686288534</link>
      <description>直接调 OpenAI API 容易写出类型松散、错误处理缺失的脆弱代码。本文以 TypeScript 为主线，从请求体类型建模、流式响应解析、Function Calling 类型推导到错误分级处理，拆解一个生产级 ChatGPT 客户端的完整封装思路。</description>
      <pubDate>Wed, 22 Jul 2026 02:11:28 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/typescript-类型安全的-chatgpt-api-封装-从裸调-fetch-到生产级-sdk-1784686288534</guid>
    </item>
    
    <item>
      <title>Vite 插件驱动 Node.js 开发工具链：从 HRM 到自定义构建管线的工程化实践</title>
      <link>https://climberzbm.cn/posts/vite-插件驱动-node-js-开发工具链-从-hrm-到自定义构建管线的工程化实践-1784685717576</link>
      <description>Vite 不仅是前端构建工具，其插件体系同样可以赋能 Node.js 后端工具链。本文从 HMR 代理、自定义中间件到构建管线集成，展示一套用 Vite 插件驱动后端开发的工程化方案。</description>
      <pubDate>Wed, 22 Jul 2026 02:01:57 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/vite-插件驱动-node-js-开发工具链-从-hrm-到自定义构建管线的工程化实践-1784685717576</guid>
    </item>
    
    <item>
      <title>React forwardRef 的类型困境：用 TypeScript 泛型重载实现零断言的 Ref 转发</title>
      <link>https://climberzbm.cn/posts/react-forwardref-的类型困境-用-typescript-泛型重载实现零断言的-ref-转发-1784516207367</link>
      <description>forwardRef 是 React 组件复用中绕不开的 API，但它的类型推导堪称灾难——ref 类型与组件 Props 割裂、useImperativeHandle 缺乏类型约束。本文用泛型重载和类型工厂给出可复制的类型安全方案。</description>
      <pubDate>Mon, 20 Jul 2026 02:56:47 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-forwardref-的类型困境-用-typescript-泛型重载实现零断言的-ref-转发-1784516207367</guid>
    </item>
    
    <item>
      <title>Node.js Worker Threads 类型安全工程化：用 TypeScript 终结结构化克隆的运行时黑洞</title>
      <link>https://climberzbm.cn/posts/node-js-worker-threads-类型安全工程化-用-typescript-终结结构化克隆的运行时黑洞-1784514594093</link>
      <description>Node.js Worker Threads 的错误处理长期依赖 `as` 断言和运行时猜类型。本文从 V8 结构化克隆的边界限制出发，构建泛型 Worker 通道类型体系，将消息协议从隐式约定提升为编译期契约，让线程间通信的错误在 `tsc` 阶段就被拦截。</description>
      <pubDate>Mon, 20 Jul 2026 02:29:54 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/node-js-worker-threads-类型安全工程化-用-typescript-终结结构化克隆的运行时黑洞-1784514594093</guid>
    </item>
    
    <item>
      <title>列表渲染性能优化的框架级对决：React memo 与 Vue v-memo 的底层差异与选型决策</title>
      <link>https://climberzbm.cn/posts/列表渲染性能优化的框架级对决-react-memo-与-vue-v-memo-的底层差异与选型决策-1784514360397</link>
      <description>深入对比 React 与 Vue 在万级列表渲染场景下的性能优化策略：从虚拟列表、组件记忆化到编译器优化，用 Benchmark 数据和源码级分析告诉你什么时候该用什么方案。</description>
      <pubDate>Mon, 20 Jul 2026 02:26:00 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/列表渲染性能优化的框架级对决-react-memo-与-vue-v-memo-的底层差异与选型决策-1784514360397</guid>
    </item>
    
    <item>
      <title>React 受控组件类型安全体系：用 Discriminated Union 消灭不可能的 UI 状态</title>
      <link>https://climberzbm.cn/posts/react-受控组件类型安全体系-用-discriminated-union-消灭不可能的-ui-状态-1784512482219</link>
      <description>从布尔值地狱到类型驱动 UI：用 TypeScript Discriminated Union 重新设计 React 组件的 Props 类型，让非法状态在编译期被捕获，彻底消除运行时条件判断的漏洞。</description>
      <pubDate>Mon, 20 Jul 2026 01:54:42 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-受控组件类型安全体系-用-discriminated-union-消灭不可能的-ui-状态-1784512482219</guid>
    </item>
    
    <item>
      <title>TypeScript 模板字面量类型工程化：从字符串拼接到类型级 DSL 的演进</title>
      <link>https://climberzbm.cn/posts/typescript-模板字面量类型工程化-从字符串拼接到类型级-dsl-的演进-1784510867509</link>
      <description>模板字面量类型是 TypeScript 4.1 引入的特性，但多数项目仅停留在简单拼接层面。本文从字符串联合的笛卡尔积爆炸、递归类型深度限制、泛型约束推导三个工程化难题切入，给出可落地的类型级 DSL 设计模式。</description>
      <pubDate>Mon, 20 Jul 2026 01:27:47 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/typescript-模板字面量类型工程化-从字符串拼接到类型级-dsl-的演进-1784510867509</guid>
    </item>
    
    <item>
      <title>JavaScript 数组性能的 V8 底层密码：从元素种类到单态化内联缓存</title>
      <link>https://climberzbm.cn/posts/javascript-数组性能的-v8-底层密码-从元素种类到单态化内联缓存-1784510626628</link>
      <description>同样的数组，为什么 for 循环和 forEach 性能差 10 倍？本文从 V8 元素种类（ElementsKind）、隐藏类和内联缓存三个底层机制入手，通过可复现的基准测试和反例对比，给出数组操作的工程化性能防线。</description>
      <pubDate>Mon, 20 Jul 2026 01:23:46 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/javascript-数组性能的-v8-底层密码-从元素种类到单态化内联缓存-1784510626628</guid>
    </item>
    
    <item>
      <title>TypeScript 声明文件生成工程化：从 declarationMap 到 Vite lib 模式的三层性能优化</title>
      <link>https://climberzbm.cn/posts/typescript-声明文件生成工程化-从-declarationmap-到-vite-lib-模式的三层性能优化-1783649005136</link>
      <description>声明文件不只是编译产物，更是消费方 DX 入口。本文从 declarationMap、emitDeclarationOnly 到 vite-plugin-dts，拆解 TypeScript + Vite 库模式的声明文件工程化链路，将构建时间从 47s 压缩到 11s，并让 IDE 精准跳转回源码。</description>
      <pubDate>Fri, 10 Jul 2026 02:03:25 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/typescript-声明文件生成工程化-从-declarationmap-到-vite-lib-模式的三层性能优化-1783649005136</guid>
    </item>
    
    <item>
      <title>状态管理的两个世界：React Hooks 与 Vue Composables 的设计哲学深度对比</title>
      <link>https://climberzbm.cn/posts/状态管理的两个世界-react-hooks-与-vue-composables-的设计哲学深度对比-1783648917793</link>
      <description>React 和 Vue 的状态管理看似殊途，实则在响应式、作用域和副作用治理上有深层的设计博弈。本文从依赖追踪、闭包陷阱、缓存策略三个维度，用正反例代码展示两种范式下的最佳实践。</description>
      <pubDate>Fri, 10 Jul 2026 02:01:57 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/状态管理的两个世界-react-hooks-与-vue-composables-的设计哲学深度对比-1783648917793</guid>
    </item>
    
    <item>
      <title>TypeScript 与 JavaScript 混编工程的 5 条类型边界治理法则</title>
      <link>https://climberzbm.cn/posts/typescript-与-javascript-混编工程的-5-条类型边界治理法则-1783562628964</link>
      <description>前端项目从 JS 迁移到 TS 几乎不存在一步到位。本文围绕混编工程中 5 条经过生产验证的类型边界治理法则展开——从 JS 模块类型声明、checkJs 渐进式迁移、共享类型桥梁、运行时 Zod 校验到 CI 分层检查，每条法则附正反例代码对比。</description>
      <pubDate>Thu, 09 Jul 2026 02:03:48 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/typescript-与-javascript-混编工程的-5-条类型边界治理法则-1783562628964</guid>
    </item>
    
    <item>
      <title>TypeScript 如何帮你消灭不必要的 React 重渲染：从 any 逃逸到类型级性能契约</title>
      <link>https://climberzbm.cn/posts/typescript-如何帮你消灭不必要的-react-重渲染-从-any-逃逸到类型级性能契约-1783562520826</link>
      <description>重渲染不只在运行时排查——本文展示如何通过 TypeScript 类型系统在编译期就锁定引用稳定性、Props 约束和 Hook 依赖，让类型检查器成为你的第一道性能防线。</description>
      <pubDate>Thu, 09 Jul 2026 02:02:00 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/typescript-如何帮你消灭不必要的-react-重渲染-从-any-逃逸到类型级性能契约-1783562520826</guid>
    </item>
    
    <item>
      <title>JavaScript 错误处理工程化：从 try-catch 混乱到 Result 模式的类型安全演进</title>
      <link>https://climberzbm.cn/posts/javascript-错误处理工程化-从-try-catch-混乱到-result-模式的类型安全演进-1783476145903</link>
      <description>try-catch 满天飞、错误类型无法追踪、异步错误静默丢失——本文从工程化视角出发，用 Result 模式 + TypeScript 类型系统重构 JavaScript 的错误处理链路，让每一个错误都可见、可追踪、可组合。</description>
      <pubDate>Wed, 08 Jul 2026 02:02:25 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/javascript-错误处理工程化-从-try-catch-混乱到-result-模式的类型安全演进-1783476145903</guid>
    </item>
    
    <item>
      <title>Node.js 流式处理的三个反模式：别再让内存成为瓶颈</title>
      <link>https://climberzbm.cn/posts/node-js-流式处理的三个反模式-别再让内存成为瓶颈-1783217028861</link>
      <description>Node.js 的 Stream API 是处理大文件和大数据的利器，但工程中常见的三个反模式会让流式处理形同虚设。本文用正反例对比，拆解背压、管道错误处理和高水位的正确实践。</description>
      <pubDate>Sun, 05 Jul 2026 02:03:48 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/node-js-流式处理的三个反模式-别再让内存成为瓶颈-1783217028861</guid>
    </item>
    
    <item>
      <title>V8 字符串内部表示深度揭秘：从 Cons String 到切片陷阱的性能优化实战</title>
      <link>https://climberzbm.cn/posts/v8-字符串内部表示深度揭秘-从-cons-string-到切片陷阱的性能优化实战-1783216869396</link>
      <description>字符串是 JavaScript 中最常见的类型之一，但很少有人了解 V8 内部的字符串表示策略。本文深入剖析 Cons String、Sliced String、Seq String 三种内部形态，揭示模板字面量、大字符串拼接和正则匹配中的隐藏性能陷阱，并提供可直接落地的优化方案。</description>
      <pubDate>Sun, 05 Jul 2026 02:01:09 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/v8-字符串内部表示深度揭秘-从-cons-string-到切片陷阱的性能优化实战-1783216869396</guid>
    </item>
    
    <item>
      <title>Vite 构建产物诊断工程化：从 rollup-plugin-visualizer 到体积治理的完整链路</title>
      <link>https://climberzbm.cn/posts/vite-构建产物诊断工程化-从-rollup-plugin-visualizer-到体积治理的完整链路-1782898628782</link>
      <description>构建产物体积失控不是配置问题，而是诊断能力缺失。本文从 rollup-plugin-visualizer 入手，建立产物分析→问题定位→策略制定→CI 门禁的完整工程化链路，让每一次构建都有据可查。</description>
      <pubDate>Wed, 01 Jul 2026 09:37:08 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/vite-构建产物诊断工程化-从-rollup-plugin-visualizer-到体积治理的完整链路-1782898628782</guid>
    </item>
    
    <item>
      <title>JavaScript AbortController 工程化实践：从竞态漏洞到可取消架构</title>
      <link>https://climberzbm.cn/posts/javascript-abortcontroller-工程化实践-从竞态漏洞到可取消架构-1782898544089</link>
      <description>AbortController 远不止 fetch 取消——它是前端异步流程的生命线。本文从竞态条件的根因切入，对比setTimeout+锁、序号校验等传统方案的脆弱性，推导出 signal 模式的完备架构，覆盖请求取消、事件监听清理、流消费中断及 React Hook 封装。</description>
      <pubDate>Wed, 01 Jul 2026 09:35:44 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/javascript-abortcontroller-工程化实践-从竞态漏洞到可取消架构-1782898544089</guid>
    </item>
    
    <item>
      <title>React + Vite 类型安全配置体系：从环境变量到路径别名的编译期契约</title>
      <link>https://climberzbm.cn/posts/react-vite-类型安全配置体系-从环境变量到路径别名的编译期契约-1781402441941</link>
      <description>用 TypeScript 类型系统为 Vite 工程的 6 个常见配置盲区建立编译期安全网，让拼写错误和路径漂移在构建阶段就被拦截，而不是等到生产环境报错。</description>
      <pubDate>Sun, 14 Jun 2026 02:00:41 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-vite-类型安全配置体系-从环境变量到路径别名的编译期契约-1781402441941</guid>
    </item>
    
    <item>
      <title>Node.js Stream 背压治理实战：从内存泄漏到稳定吞吐的工程化优化路径</title>
      <link>https://climberzbm.cn/posts/node-js-stream-背压治理实战-从内存泄漏到稳定吞吐的工程化优化路径-1781230255817</link>
      <description>深入拆解 Node.js Stream 背压机制，对比 pipe 与 pipeline 的内存差异，给出从诊断到治理的完整工程化方案，附生产级流控代码模板。</description>
      <pubDate>Fri, 12 Jun 2026 02:10:55 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/node-js-stream-背压治理实战-从内存泄漏到稳定吞吐的工程化优化路径-1781230255817</guid>
    </item>
    
    <item>
      <title>TypeScript 编译期性能契约：用类型系统在构建阶段拦截运行时瓶颈</title>
      <link>https://climberzbm.cn/posts/typescript-编译期性能契约-用类型系统在构建阶段拦截运行时瓶颈-1781143617962</link>
      <description>运行时性能调优往往治标不治本。本文从 TypeScript 类型系统出发，探讨如何通过模板字面量类型、条件类型与泛型约束，在编译期建立性能契约——让不合规的慢路径在 CI 阶段直接报错，而不是等上线后靠火焰图救火。</description>
      <pubDate>Thu, 11 Jun 2026 02:06:57 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/typescript-编译期性能契约-用类型系统在构建阶段拦截运行时瓶颈-1781143617962</guid>
    </item>
    
    <item>
      <title>V8 JIT 编译流水线深度拆解：从 Ignition 字节码到 TurboFan 去优化的代码形状治理</title>
      <link>https://climberzbm.cn/posts/v8-jit-编译流水线深度拆解-从-ignition-字节码到-turbofan-去优化的代码形状治理-1780797680619</link>
      <description>深入 V8 的 JIT 编译流水线，从 Ignition 解释器到 TurboFan 优化编译器，剖析隐藏类变化如何触发去优化（deopt），并给出可落地的代码形状治理策略，让你的 JavaScript 长期停留在优化态。</description>
      <pubDate>Sun, 07 Jun 2026 02:01:20 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/v8-jit-编译流水线深度拆解-从-ignition-字节码到-turbofan-去优化的代码形状治理-1780797680619</guid>
    </item>
    
    <item>
      <title>TypeScript 驱动的 Node.js 服务工程化：从配置加载到优雅关闭的 5 层防线</title>
      <link>https://climberzbm.cn/posts/typescript-驱动的-node-js-服务工程化-从配置加载到优雅关闭的-5-层防线-1780758220528</link>
      <description>TypeScript 的类型安全与 Node.js 的服务工程化如何协同？本文从配置校验、错误边界、生命周期管理、结构化日志到优雅关闭，构建 5 层防御体系，让后端服务从“能跑”到“跑得稳”。</description>
      <pubDate>Sat, 06 Jun 2026 15:03:40 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/typescript-驱动的-node-js-服务工程化-从配置加载到优雅关闭的-5-层防线-1780758220528</guid>
    </item>
    
    <item>
      <title>React 懒加载的类型安全困境与突围：从 any 断言到泛型边界的代码分割实践</title>
      <link>https://climberzbm.cn/posts/react-懒加载的类型安全困境与突围-从-any-断言到泛型边界的代码分割实践-1780624914243</link>
      <description>React.lazy + Vite 代码分割看似简单，但类型边界极易崩溃：动态 import 的默认导出丢失推导、Suspense fallback 的 Props 类型断裂、预加载策略的签名坍塌。本文以正反例对比的方式，给出从组件层到路由层的完整类型安全方案。</description>
      <pubDate>Fri, 05 Jun 2026 02:01:54 GMT</pubDate>
      <guid>https://climberzbm.cn/posts/react-懒加载的类型安全困境与突围-从-any-断言到泛型边界的代码分割实践-1780624914243</guid>
    </item>
    
  </channel>
</rss>