编程笔记
一次普通的 400 错误,让我顺着客户端弹窗查到了服务端响应、共享错误码、RequestError、生产日志和 Hono RPC 类型生成。这里记录我怎样把错误链重新串起来,也说明为什么直接 import type 仍会读取服务端源码,以及我最后为何保留 dts-bundle-generator。
编程笔记
记录 Drizzle ORM 0.45.x 配合 Bun.SQL 写入 PostgreSQL JSONB 时遇到的双重编码:嵌套对象被保存成 string,导致属性读取失败。文章给出 jsonb_typeof 定位 SQL、jsonb_build_object 修复和回归测试方法。
Drizzle ORMBun.SQLPostgreSQLJSONB查看正文 →
编程笔记
记录博客取消 2K、4K 和超大屏专门适配的原因。我查看常用网站和 Tailwind CSS 的默认响应式方式后,没有发现页面需要随物理分辨率不断放大;相反,内容通常保持最大宽度,宽屏只增加留白。几次自定义断点还破坏了首页、文章、Tools 与 About,最终项目恢复默认断点和 max-w-7xl。
WebTailwind CSS响应式布局高分辨率屏幕查看正文 →
开发工具
记录我把客户端、服务端和设计资料从一个 Monorepo 拆到独立仓库的过程。重点不是 git-filter-repo 命令本身,而是怎样确认 202 个文件和 89 条提交没有丢,怎样保留 .env、日志和编辑器配置,以及什么时候才能放心删除旧目录。
GitMonorepo仓库拆分历史迁移查看正文 →
编程笔记
记录 Taro 小程序半屏抽屉的两个交互问题:图标看得见却难以点中,系统返回又会直接离开页面。文章使用 44px 触控热区与 PageContainer 假页容器,让右滑返回、安卓物理返回键和代码返回优先关闭抽屉,并说明嵌套弹窗、遮罩动画与真机验证时容易踩到的边界。
Taro微信小程序PageContainer交互适配查看正文 →
编程笔记
记录一次将小程序协议 Markdown 从源码内置改为运行时加载的开发过程:最初绕到对象存储、版本清单和 JSON 包装,最后收敛为启动 config 下发路径、Hono/Bun serveStatic 直接提供文件。文章也说明 MIME 类型、Docker 复制和旧客户端兼容这些容易漏掉的细节。
编程笔记
一次 Taro 前台分页改造记录:从用单页条数猜测是否还有下一页,到发现列表接口每次返回 total 会重复执行 COUNT,最后将列表与总数拆成两个接口,并按筛选条件缓存总数,减少空页请求和翻页开销,同时说明排序、搜索、缓存键和新旧客户端的发布顺序。
部署记录
记录同一台 Docker 主机上的多个 Compose Stack 如何复用用户自定义 bridge 网络,说明 external 网络、项目网络命名和容器 DNS,并结合 Caddy 502 排查解释一个共享网络为何仍会产生多条 veth 虚拟网卡。
系统折腾
记录 WSL2 的 ext4.vhdx 随使用不断增长、删除 Linux 文件后却不自动收缩的问题,并说明如何找到默认发行版藏在 AppData 下的虚拟磁盘。文章给出我使用 C 盘 app 目录作为自定义安装位置的做法,以及通过 DiskPart 压缩 VHDX、把空闲空间还给 Windows 的完整命令。