方法论与洞察

2026-08-21 一小时分享会 · 从设计到投影现场 · 全链路复盘 · v1

当天做完当天讲:给一场 60 分钟的公开分享设计内容、做演示稿、加现场实操段、 顺手修 iOS 真机 bug、最后追投影发糊的原因。 重点是同一天内三次把工具的假象当成产品的 bug,形态完全一样。

事实记录(不可修改区)


一、同一天三次,同一个形态

工具给了我一个结果,但那个结果回答的不是我以为的那个问题。 三次都不是「工具算错了」,也不是「我读错了输出」——工具都正常工作,我读得也对。

1. --window-size 回答的是「截图多大」,不是「布局视口多宽」

用 headless Chrome 截 390px 宽的图,看到右侧文字被切,判定手机端横向溢出, 据此改了一轮响应式。用 --dump-dom 把真实值打出来才发现: viewport 489、docScrollWidth 489、越界元素 0——根本没有溢出, --window-size 没改布局视口,只裁了截图。

顺带留下一个次生错误:为这个假问题加的 overflow-x:hidden 会把真溢出藏起来,比不加更糟,后来撤掉了。 (同一轮里另外两处改动——栅格写 minmax(0,1fr)、长串可断行——是对的实践,留下了。 为假问题做的改动里,也可能混着对的东西,要分开处置。

2. curl -o 回答的是「字节流是什么」,不是「解压后的文本是什么」

抓线上构建核对修复有没有上线,grep 全部零命中,一度以为发布的是旧版。 实际是没解压,拿到的是 gzip 流。加 --compressed 之后 5 项全部命中。

3. git status 回答的是「相对我本地记的那个远端」,不是「相对真实的远端」 ❗

站点仓库显示 ahead 44,我据此给出风险评估: 「44 个提交、三周工作会一起上线,其中 6 个会重启线上后端服务」, 并按这个等级设计了整套绕行方案。

git fetch 之后:真正没推的只有 2 个。那 44 个早就在远端也早就上线了。

这一条代价最大:它不是浪费几分钟,而是让我给出了一个错误的风险评估, 差点让作者为此做本不必要的取舍。→ 开工前先对基线律_v1 的新形态: 不是「在旧检出上开发」,而是拿陈旧的 ref 去做风险判断

三次合起来构成 全站文字截断体检_检测工具本身要先被证伪_v1第四个亚型,详见那篇。


二、唯一一次「先量再改」,也是唯一一次一改就中

现场反馈「投影上非常糊」。第一嫌疑是演示稿用 transform: scale() 把固定的 1280×720 舞台放大——教科书级的糊法。但这次先量了

量什么结果结论
1920 下实际渲染 vs「位图拉伸」参照的锐度3 倍原生重绘,缩放不是病因
断网渲染 vs 联网渲染逐像素完全相同Google Fonts 一直就没加载上

真因是宋体fonts.googleapis.com 国内取不到,标题掉回 Windows 自带的 SimSun, 而宋体是给小字设计的、横画极细,66px 投到对比度低的投影仪上就是一片糊。

修法:把演示稿真正用到的 916 个字做成子集内嵌 (思源宋体 700 / 思源黑体 400·500·700 / JetBrains Mono 500·700,子集后 535 KB), 顺带把正文字重从 300 提到 400——投影上细字重本来就是最先糊的那一档

实测:断网 file:// 打开与联网渲染逐像素相同(差异 0.00%), 标题墨量比掉回宋体时多 21%。代价是文件从 311 KB 涨到 1025 KB, 换来这份稿子彻底不依赖网络

可迁移的一条:字体是渲染质量的一部分,不是装饰。 凡是要在别人机器上放映 / 打印 / 投影的网页,webfont 就该内嵌子集, 而不是指望目标环境能连上字体 CDN。


三、做对的地方

从一条「看起来不相干」的反馈里定位 ❗

iOS 的反馈有两条:「走不动、开不了枪」和「长按会弹出拷贝菜单」。 前一条与几十种原因相容;后一条只与一种相容——

代码里 preventDefault 挂在「认领成功」之后,所以长按菜单一出现, 就说明那一下触摸压根没被接管,而不是接管了没反应。 范围一下子从「触摸链的任何一环」缩到「中间某一步抛了异常,把后面全带走了」。

主诉描述的是症状,那条不相干的细节描述的是机制。 收到多条反馈时,优先追那条「跟主诉无关、但你解释不了」的。

把「不能观测」当成第一优先级修

→ 独立成律:沉默失败先装嘴律_够不到的环境先给它一层能看见的报错_v1

分享稿的骨架:不讲成就,讲卡住

60 分钟的落点不在「我做了个游戏」,而在两处: 开场让全场先在手机上打一局(把「这是真的」变成体感), 第 05 段整段讲我卡住的四次(把「他行我不行」拆掉)。

而当天上午真机反馈来的那个 iOS bug,当场变成了第五次—— 一个此刻还没修好、也验不了的 bug,比任何准备好的案例都硬。 讲稿里那句「改法已经提交审核,但我到现在也没有 iOS 设备,改完了验不了」, 是全场最该说的一句。

演示稿的几个现场功能,都是为「讲的人」设计的


四、下次改进

如果重来,最想改哪一步:把「先量再改」提到第一位,而不是第四位。 这一天有四次判断,只有第四次是先量的,也只有那次一改就中。

行动清单

  1. 任何截图 / 抓包 / 状态查询,先确认它回答的是不是你要问的那个问题
  2. git status 的 ahead/behind 在 git fetch 之前不作数, 尤其是要拿它下风险判断的时候
  3. 遇到「就是不行」类反馈,先装观测手段再改
  4. 反馈里那条「看起来跟主诉无关」的细节,优先当作定位线索
  5. 要在别人机器上放映的网页,webfont 内嵌子集,别指望目标环境能连上 CDN

关联文档

类型/协作工具链主题/协作主题/复盘