应用的边界
凡是从外面来的都不可信。一次断掉一环,看链条停在哪里、屏幕上又出现什么。
点击图中任意一段,可打开该步骤。
完整的边界
网络 → 状态码 → 解析 → 形状 → 是否存在 → 屏幕上唯一的状态。每一段返回的都是有名字的结局,而不是一个光秃秃的 null,所以界面永远知道到底哪里出了问题、该显示什么。
内容一览
- 1 请求可能根本发不出去 — 链条到这里就停了。下面的一切连试都不会试。
- 2 有响应还不等于有数据 — 不看状态码就去解析,正是错误页变成组件内部崩溃的那条路。
- 3 形状只校验一次 — 边界上的一次校验,替掉了数据每一处使用点上的防御式判断。
- 4 格式对不代表东西在 — 「没找到」和「出了故障」,在调用方眼里绝不能长得一样。
- 5 一次只有一种状态 — 各自独立的布尔标志会允许没人设计过的组合。单个字段不会。
可交互的讲解
- 药物是怎样被送过血脑屏障的 大脑几乎拒绝所有药物分子,而且这么做是对的。一个滑块,跟着实验室正在试的那一手走:把分子包进一个血管壁本来就知道怎么运的小囊泡里。
- 机器人怎样画出一间从没见过的房间的地图 激光雷达转一圈只给出几百个点,并不知道自己在哪儿。一个滑块,从这团点云一路走到一张平面图,机器人正好站在对的位置上。
- 两个人同时敲同一行,为什么一个字母都不会丢 两个光标、一行文字,中间没有人握着笔。一个滑块拆开按下标合并的做法,再用字母之间的地址把它重新装起来。
- 量子计算机为什么会卡在格上 Shor 算法一步就吃掉 RSA。同一台机器面对一张加了点噪声的点阵,却几乎无从下手。一个滑块就能看出差别。
- 把建筑对准太空来降温 一层涂料,在烈日下仍比周围空气更凉,而且一瓦电都不用。一个滑块,把热量从太阳一路送到大气层的另一侧。
- 机器人如何预测下一秒 文本模型猜下一个词,世界模型猜下一帧——连质量、速度和重力一起猜。一个滑块走完整个回路,从摄像头到接住。
- 不泄露秘密地证明自己知道它 一个滑块走过各个阶段,另一个增加轮数。看着把握逼近十足,而秘密始终还是秘密。
- 从卤水里取锂:晒盐池与直接提取 拖动滑块走过五个阶段,比较从同一份盐水里取出同一种金属的两条路。
- 个体化 mRNA 癌症疫苗是怎么起作用的 拖动滑块走过五个阶段,看肿瘤自身的突变如何变成一份说明书,教会免疫系统去找到它。
- 在自己的文档里检索是怎么回事 拖动滑块,看一条检索流水线如何决定模型能看到什么——以及塞给它错误段落时会发生什么。
- 重复请求与很慢的响应 网络在操作中途断掉。把按钮按两下,看看数据库里最后剩下什么——有幂等键和没有幂等键。
- 语言模型是怎么写出文字的 权重被冻结,什么也不会被记住。拖动滑块,看模型一次又一次地挑出下一个文本碎片。
- 语言模型是怎么学会的 拖动一个滑块,看一堆随机数字如何在一千步里变成一个预测。
- 电从哪里来 拖动一个滑块,跟着能量从河流一路走到把水重新抽上去的水泵。