归档: 2026/11

上线后的数据库 schema 演进:单文件 DDL 与迁移台账实践

上一篇留了话头:contracts 里除了 proto,还有一份 7000 多行的单文件数据定义语言(DDL)。上线之前它怎么改都随意,重建一遍数据库就回到最新;上线之后,prod 库里躺着真实用户的报名数据,这条路断了。这篇讲我现在的做法:单文件 DDL 依旧是唯一的结构真相,迁移链只在上线时点动笔,中间靠一个台账文件衔接。开发期的快迭代和 prod 的可追溯,两头都要。 全量重放会静默失效01

契约先行:用 Protobuf 生成三端接口代码

上一篇讲了仓怎么组织,这篇讲仓的心脏:contracts/。这个报名工具有两个 Web 后台、一个小程序、一个 Rust 后端,接口的消费方四个,契约只有一份:44 个 proto 文件、44 个 service、361 个 rpc,后台的 TS、小程序的 TS、后端的 Rust 全部生成代码,没有一个接口类型是手写的。传输层跑的是 Connect 协议(HTTP/JSON),不过协议不

TypeScript 与 Rust 同仓:多端项目的 monorepo 组织实践

《AI 时代的微信小程序开发》里那个报名工具,当时还是 25 个页面加一个 Rust 后端。现在它长成了正经的小系统:小程序之外,SaaS 管理后台、运营后台、用户手册站陆续到位,算下来四个 TypeScript 前端、一个 Rust 后端、一份 proto 契约,外加一套集成测试。这些家伙放几个仓库?我的答案是全放一个,两个包管理器各管各的,边界划清楚就行。这篇文章把组织方式和踩过的坑摊开讲。