Tags
# 方法论14
标签「方法论」下的文章
- 事后抽检,而不是提交前拦人:一个只读质检面板的取舍 约 5 分钟
质检规则最初被做成了提交前的一道闸——后来摘掉了。同样一套规则,放在「挡住正在干活的人」和「事后给主管看」两个位置,误伤的代价差着数量级。
- 一张 changelogs 表服务多个产品:版本号、更新日志,和「漏了会静默」的两道闸门 约 5 分钟
任何靠人维持同步的副本,迟早会漂。README 里手写的版本号落后了五个版本,更新日志被抄成三份——把它们收成单向的真源关系,再给「漏写不报错」的地方装上闸门。
- 采集纠偏样本:一个埋点盲区,和「高分而自信地错」的通用叶子 约 3 分钟
拿埋点数据做 A/B 归因,得出「新功能上线后准确率掉了一大截」——被当场指出口径有问题。那个字段从头到尾只记录了其中一方的输出。
- 一条命令发版:打包、部署、更新日志、公告、群通知,以及「HTTP 200 也可能是失败」 约 5 分钟
发版被拆成五步串在一条 npm 命令里。每一步都有自己的闸门——而最容易出事的,是那些失败时不报错的地方。
- 和 AI 结对写一年代码:精瘦的 CLAUDE.md、按域拆的文档、git 纪律,和压缩后的幻觉 约 7 分钟
这个项目的大部分代码是和 AI 编码助手一起写的。真正决定协作质量的不是模型,是那些写给它看的文档、给它设的闸,以及几次它(和我)被自己的记忆骗到的经历。
- 「对方回复过了吗」这个判据的四代史:字段被删,语义被误读,异步化之后种子种不上 约 5 分钟
一个看似只需要一行代码的判断,被宿主系统的改版打穿了三次。每一代都有一个看起来天经地义的依据,而每一个依据都在某天悄悄失效。
- 服务端粗筛 + 本地精排:给一个没有模糊搜索的列表接口做相似检索 约 5 分钟
过滤器写错不报错,而是「看起来查到了全量」。在这样的接口上做相似检索,第一件事是验证你的过滤条件真的生效了。
- 先分流再匹配:一个关键词分类引擎的三次失效 约 6 分钟
三级分类树里 38% 的叶子重名,加分改变不了「同名无法区分」。于是先分流再打分——然后树被改了层级,锚点淹没了小系统,分词器切不开连写的中文。
- 「用某个 CSS 框架」意味着用它的组件类:一份 beercss 陷阱清单 约 5 分钟
第一版只把框架当变量字典,控件样式全部重写——被一眼看穿「根本没用上」。改成真用之后,又踩到了全局样式框架会悄悄改写你以为自己控制的属性。
- 扩展的入口放哪:从一颗会眨眼的浮动小球,到宿主顶栏里一枚安静的图标 约 5 分钟
入口迭代了三次。最后删掉的那颗小球做得很精致——贴边三档、换位手柄、呼吸动画。问题恰恰在于它看起来太像一个「东西」了。
- 排查方法论:错误信息会撒谎,日志会缺一段,你的仪器本身可能是坏的 约 8 分钟
一年里最贵的那些 bug,没有一个是因为不懂某个 API。全都是因为相信了一件不该相信的东西——八条原则,每条配一个真实案例。
- 固定流程 + AI 判断节点,而不是 function calling 自主决策 约 5 分钟
同一件事,写死一条链和交给模型自己编排,差别不在能力上,在于出问题时你能不能定位到是哪一步。
- 339 处裸 console 之后:给扩展做一个带 scope 的日志层 约 5 分钟
「调试日志」开关立项就有,但它只管得住两个文件——其余三百多处裸 console 拨不拨都照样刷屏。收口的过程里有四条规矩和一个环形缓冲。
- 【Udesk 系列】导读:一个人维护一个内测产品,要凑齐哪些零件 约 11 分钟
一个不能上架、不能开源的浏览器扩展,靠一个人做完分发、更新、鉴权、公告、更新日志、统计和排障。这是整个系列的地图。