🐳 第八章 设计自己的Harness
📄 一句话概括

DSH 是主版本 0 的预览软件,接口明天就可能换——能带走的是四条不依赖函数名的判断。

📝 本节和前面几节的关系

8.6 讲了怎么衡量,这一节回答一个更实在的问题:这一课读完,到底留下什么。

一、为什么不能带走 API

1.5 Developer Preview 已经讲清:版本号 0 开头,接口不承诺兼容。

本课实测的是 0.2.0-rc.2——rc 还指在预览候选上。

把 API 背下来,等于把有效期绑在一个版本号上。

二、四条能带走的判断

四条都不含任何函数名、任何包名。

三、为什么是这四条

它们都是关于结构的判断,不是关于接口的知识。

本课反复用的一句话:学结构,别背接口(1.5 的结论)。

四、换个 Harness 还成不成立

把四条放到任何一套 Agent Runtime 上问一遍:

四问过不去,换哪家 Runtime 都一样。

五、动手 Demo:值得带走的不是某个 API

DSH 是 developer preview,接口明天就可能换;留下的是四条判断:

rules = ["能力与实现分离", "边界先划",
         "规矩只写一遍", "一切留证据"]
for i, r in enumerate(rules, 1):
    print("  %d. %s" % (i, r))
print("  这四条不依赖任何一个函数名")

实跑输出:

--------------------------------------------------------------------
值得带走的不是某个 API
--------------------------------------------------------------------
  DSH 是 developer preview(主版本 0),接口明天就可能换。
  但这一课真正要留下的,是四条**换版本也不变**的判断:

  判断               一句话                     本课出处
  ---------------------------------------------------------
  能力与实现分离     能力是 id,实现是包        7.3.1
  边界先划           先写不做什么               2.2/8.3.2
  规矩只写一遍       所有路径过同一道门         4.4/6.3
  一切留证据         能回放、能追溯、能解释     6.5/6.6
  ---------------------------------------------------------

  这四条不依赖 DSH 的任何一个函数名——**换一家 Harness 也成立**。

四条全是结构判断,不含任何一个函数名或包名。 换个 Harness,把这四条当问卷问一遍——过不去的,换哪家都一样。 这正是 1.5 说的那句:学结构,别背接口。

30 秒实验

  1. 把四条判断抄下来,对你现在用的工具逐条打分。
  2. 找一条你以前记的【API 用法笔记】,问问它换版本后还能不能用。
  3. 挑一条判断,想想它在你的项目里对应的具体做法是什么。

常见误区

  1. 错误:把这一课当 DSH 使用手册。——纠正:它是结构课——手册会随版本重印,结构不会。
  2. 错误:这四条太抽象,没法用。——纠正:每条都有对应动作——分离=找接缝,边界=写不做栏,只写一遍=收口到一道门,留证据=能 dump 能回放。
  3. 错误:等 DSH 发 1.0 再学更划算。——纠正:学的正是它身为 0.x 时暴露出来的结构——等 1.0 反而看不清哪些是权衡。
自测三问(点开对答案) 1. 为什么不能带走 API? —— 因为**版本号 0 开头,接口不承诺兼容**——本课实测的还只是 0.2.0-rc.2。 2. 能带走的是哪四条判断? —— **能力与实现分离、边界先划、规矩只写一遍、一切留证据**。 3. 为什么是这四条? —— 因为它们是**关于结构的判断**——接口回答【怎么写】,结构回答【该怎么组织】;换实现照样成立。

相关笔记