如果我发布它,你就得不到我那种体验:jardiff 与构建工具重构手记
来源: notes.highlysuspect.agency — 2026
概述
作者在 Minecraft mod 仓库做构建工具重构时,为了确认没改坏任何东西,写了个叫 jardiff 的程序:逐文件对比两个目录,深入解析 .zip/.jar 内部、对 .json 做格式化后对比、用 Java 反汇编器(asm textifier)解析 .class 后再 diff,而不是简单地报「二进制文件不同」。他手写了 meyers diff 算法。jardiff 揭示出新旧工具产物的真实差异,但也让作者意识到——一旦发布,别人得到的构建产物体验与自己开发时并不相同,进而陷入「要不要发布」的思考。
核心要点
- 为重构写了宽松版 diffoscope:jardiff
- 能深入 .zip/.jar、标准化 .json、反汇编 .class再对比
- 手写Meyers diff 算法,纯属有趣的自找麻烦
- jardiff 暴露出新旧工具产物差异,引发「发布还是不发布」的思考
金句
因为它值得比一句「二进制文件不同」更好的待遇。
👍 0
👎 0
返回 Lobsters 首页