2026-09-23·by Sijie Wang#standmeet#architecture#design

judgment-audit

判断力审查——超越 lint 的纪律

上级: structure

分工: lint / 类型检查 / 测试守的是机械正确性mechanical-guardrails);审查指南守的是判断质量——"机械正确 ≠ 架构干净"。这是一份自我演化的文档;第一轮审查产出了发现 1–9 并触发了一次重构。

流程: (1) 先读意图再看实现(先从命名 / 签名猜行为);(2) 走通一条真实的端到端路径——债务藏在跨模块的接缝处,而不是单元内部;(3) 反向走一遍错误路径(错误是否被吞掉?调用方能不能区分"无数据"和"崩溃"?);(4) 按 10 个维度打分,记录 file:line + 严重度(blocker / debt / style)+ 一句话;(5) 输出一张审查表——不在原地修。

10 个维度(压缩版):

  • if 密度是否匹配意图;
  • 该响亮失败还是该沉默(合法的静默降级需要同时满足三点:预期中的业务状态 + 明确的语义 / 注释 / 测试 + 不会掩盖真实故障);
  • 单一事实来源(派生数据不落地存储);
  • 务实版 SOLID;
  • 只在真正的边界上用模式(单方法接口 → 函数类型);
  • 命名等于行为(本仓库自己的例子:seo 实际指的是 landing / reader);
  • 状态 / 不变量 / 并发(不变量由数据约束守护,而不是靠调用顺序;flaky 测试本身就是一种设计异味);
  • 边界 / 泄漏(一行测试法:删掉这个具体插件——base 还能编译吗?);
  • 错误形态(sentinel 还是 typed);
  • 测试的诚实性(断言的是"正确",不是"没崩";抓住那些悄悄跑了 fallback 却显示绿色的假通过)。

注意这处共振: 这本身就是一道判断质量的关卡——用 harness 理论的读法,审查指南提供的是 lint 机械化不了的语义关卡评分标准(mechanical-guardrails 守的是 α≈0 那一层;这份守的是需要校准判断力的那一层)。

read next
about this entry

One of sijie's wiki entries. The AI on this site is grounded in the same corpus and answers in sijie's voice, with citations back to entries like this one — answering costs sijie money, so it waits behind a code: enter an access code →