博客技术栈
本站使用以下技术构建,追求高性能与最佳开发体验
Astro 5
现代化的静态站点生成器
Tailwind CSS 3
实用优先的 CSS 框架
TypeScript
类型安全的 JavaScript
Swup
页面过渡动画
最新文章
View all posts »记录技术学习、前端开发经验和日常思考。每一篇文章都经过精心打磨,希望对你有所帮助。

推理模型:test-time compute 买到了什么,又买不到什么
同一道题,标准模型一口报错,推理模型多花两千个 token 答对;换到一份自相矛盾的合同抽取,它想得更久、错得更自信。本文把测试时算力拆成四个旋钮——更长思维链、并行采样、搜索、迭代修订,用一个可运行的「相关误差」模拟说明收益的两个前提:正确路径在输出分布里,且你有办法把它认出来;再算清推理 token 的成本曲线、级联的盈亏平衡点,以及 max_tokens 截断、同源验证器、把思维链回放给用户这些工程坑。

邮件送达率:SPF、DKIM 与 DMARC 不是三道开关,而是一条会断的校验链
一封密码重置邮件发出去了,SMTP 返回 250,用户却在垃圾箱里找到它。问题常常不是「有没有配 SPF/DKIM/DMARC」,而是三者校验的身份不同:SPF 看信封发件人,DKIM 看签名域与内容,DMARC 把两者与 From 头对齐后再决定处置。本文按一封邮件的实际路径拆开这条链,给出可直接运行的 SPF 查询计数与 DMARC 聚合报告解析脚本,并逐条列出转发、邮件列表、include 超限、对齐失败等断点,以及从 p=none 到 p=reject 的部署顺序。

Web Worker 实战:把计算搬出主线程,要付的三笔账
主线程卡住不是因为计算太多,而是因为计算和渲染、输入共用一个事件循环。Worker 能把计算搬走,但搬走要付三笔账:消息的深拷贝、线程的启动与调度、共享内存的竞态。本文用可运行代码拆开结构化克隆、Transferable、SharedArrayBuffer 与 worker 池,并给出不该用 Worker 的场景。

Web Components 实战:生命周期、Shadow DOM 边界与声明式 Shadow DOM 的代价
把 Web Components 当成「不用框架的组件」会连续踩进四个坑:constructor 里读不到属性、connectedCallback 会重复执行、样式穿不过 Shadow 边界、SSR 输出的内容抓不到。本文用可运行代码拆开自定义元素、属性同步、Shadow DOM 与声明式 Shadow DOM,最后给出不该用它的场景。
我的技术栈
多年积累的技术能力,持续学习与进步
我的项目
以下是我参与和开发的一些项目,持续更新中