用 Cloudflare Workers + D1 + R2 搭建个人技术博客
从零开始,把文章、标签、登录、图片存储都放到 Cloudflare 边缘网络上。
记录编程、架构与踩坑日常
从零开始,把文章、标签、登录、图片存储都放到 Cloudflare 边缘网络上。
把博客、API、定时任务全部搬到 Cloudflare 免费额度内,一年下来账单是 0 美元。这篇文章讲讲哪些场景真的适合,哪些坑必须提前知道。
没有 bcrypt、没有 express-session,在 Web Crypto 和 Cookie 的基础上从零实现一套可用的认证,包括哈希、会话、CSRF 与防时序攻击。
一次真实的慢查询排查过程。EXPLAIN QUERY PLAN 怎么读,覆盖索引怎么建,以及为什么 ORDER BY 经常是压垮性能的最后一根稻草。
为什么 Promise.then 比 setTimeout 先执行?requestAnimationFrame 在哪一帧触发?用一组可以复现的实验把事件循环讲清楚。
从实现一个 Pick 开始,把条件类型、infer 推断、分发行为、映射类型这几块拼图连起来。看完能读懂大部分开源库的类型定义。
marked 本身不做消毒,DOMPurify 在 Worker 里跑不起来。这篇文章给出一套白名单消毒的实现思路,以及为什么「只允许可信作者」不能当作安全策略。
一次真实的性能优化记录。不做玄学调优,每个改动都对应一个指标,最后附上可以复用的排查顺序。
从 1.2GB 到 96MB。讲清楚多阶段构建、依赖分层、非 root 运行、健康检查这几个让镜像又小又安全的关键动作。
分支模型不是越复杂越好。这篇给出小团队(3 到 15 人)真正跑得起来的一套规则,包括什么时候 rebase、什么时候 merge、提交历史怎么保持可读。