← 揭开黑盒:理解系统的调查课堂

第 02 课:同一个现象,可能有几种解释?

本课问题:什么操作能区分两种目前都说得通的解释?
前置:完成第一次保存与预测;无需编程语法。
本课交付:至少两种竞争假设,以及一组能区分它们的预测。预计 30–45 分钟。

不急着选择自己喜欢的答案

看到保存提示时,我们很容易想到一个熟悉的词:“缓存”“数据库”“云端”。但一个名字不等于证据。

先画一张边界图:屏幕所在的页面,浏览器,提供请求响应的服务程序,以及程序可能使用的持久存储。现在它们只是可能参与的角色,不表示你已经确定数据在哪。

我们可以提出四个工作假设:

假设暂时的解释它依赖什么继续存在
H1文字只留在当前页面的运行状态这个页面实例
H2浏览器把文字保存在自己的站点存储里相应浏览器环境与存储数据
H3文字交给了服务程序,只存在服务的运行状态里这个服务进程
H4服务把文字写进了重启后仍可读取的存储对应存储介质与读取路径

这四种解释不是世界上全部可能性。例如,有的程序会定时同步,有的会在退出时写盘。先用它们形成一个能工作的初始模型,之后允许增加或修正。

让两个解释对同一个操作作出不同预测

假设某样本刷新后文字还在。H2、H3、H4 都可能解释这个结果,单次刷新区分不了它们。

换一个独立的浏览器环境,再打开完全相同的地址和实验编号:H2 预计新环境没有原浏览器的本地记录;H3/H4 预计若服务共享同一实验数据,新环境可能读到它。

“可能”里的条件不能省略。若系统需要登录,而你换浏览器后没有同一身份,读不到并不能证明数据只在原浏览器。这一组实验没有账号系统,但真实应用可能有。

判断一个实验是否有辨别力

问自己:如果两个假设都成立,我的实验是否会看到相同结果?如果会,这个实验可能确认了某个行为,却没有区分这两个解释。

例如,连续点两次保存,两个样本都出现两行文字,通常还不足以判断它们的保存位置。它可能告诉你重复操作如何处理,却不一定回答持久化问题。

好的问题要和合适的操作配对:生命周期问题用结束对应生命周期来检验,读取范围问题用改变读取环境来检验,响应可靠性问题再考虑故障。

写一张属于自己的预测表

先不查看源码,为同一样本填写下面四列:

准备改变的条件H1 的预测H2 的预测哪个结果会让我改变看法
刷新当前页自己填写自己填写自己填写
新标签页打开同一链接自己填写自己填写自己填写
独立浏览器环境自己填写自己填写自己填写
真实重启服务自己填写自己填写自己填写

可以换成 H2/H3 或 H3/H4。选择其中最有辨别力的一行,登记到实验页面,不要求一口气执行全部操作。

使用 AI 时,先索取可检验的说法

可以给 AI 这段观察:“保存后刷新,文字仍然可见。”请它给出至少两种可能解释,并分别提出一个能区分它们的实验。

保留 AI 原文,然后检查:它是否把猜测说成事实?是否给了条件?提出的实验是否真的会产生不同预测?没有模型账号也能完成本课,使用上面的四个工作假设即可。

一个需要警惕的解释是:“刷新后还在,所以一定用了服务器数据库。”你已经能指出,它漏掉了浏览器本地存储等可能性。

验收与反证

交付两种能解释现象的假设、一个能区分它们的操作,以及实验前对不同结果的预测。再写一句:“如果出现……,我会放弃或修正目前的解释。”

目前还不知道假设是否正确。我们只是把模糊的好奇,变成了可以实施的调查。下一课控制条件,真正让这些解释接受观察。