修复范围分保守、彻底与最小闭环三档
一、三档是什么
以「订阅条目的公众号封面拿不到」为例:
| 档 | 做法 | 代价 | 结果 |
|---|---|---|---|
| 保守 | 只改前端:继续从 content_html 里多匹配几种 <img> 当缩略图 | 风险低、快 | 源里没这张图时永远拿不到,「单独获得封面」做不扎实 |
| 彻底 | 抓取阶段抽共享模块:media thumbnail / enclosure / og:image / 正文首图兜底,存成结构化字段 | 动 Rust parser + 数据结构 + schema,范围大、回归测试多 | 正确,但把一次修复变成一次重构 |
| 最小闭环 | 只给订阅条目加一个 cover_image 字段,在抓取处填它 | 比保守可靠,不做大重构 | 修复落在源头,改动面可控 |
二、判据
- 能不能落在源头 —— 只在前端补救 = 打补丁,源里没有的信息补不出来;信息在源里就该在源里被提取。
- 改动面是否被最小化 —— 「顺便把逻辑抽成共享模块」是独立的重构目标,不该塞进一次修复里;它值得做,但要单独立项。
三、可复用动作
遇到「改 A 还是重构 B」的二选一时:
- 先问「信息/行为源头在哪一层」(见 先定位归属层再动手)。
- 把修复点挪到那一层,但只加它需要的那一个字段 / 那一处消费。
- 把「抽共享模块 / 统一实现」单独记为后续目标,不在本轮扩张。
二选一的提问本身就是信号:选项只有「太小」和「太大」时,缺的是中间那档。
相关
- 先定位归属层再动手 —— 本条的定位步骤:先定层,再定范围
- 一次循环只做一个可体验的v1能力 —— 范围控制的同一把尺:够端到端,不扩成路线图
- 控件参数要在下游被消费 —— 只改表层的另一种静默失效:值到了,消费方没接
- 可复用物与不可复用物分开 —— 「抽共享模块」属于可复用物治理,应独立进行