← 返回藏书阁

Tracer Bullet

wiki/ai/concepts/Tracer-Bullet.md
分类:ai / concepts · 更新:2026-06-14 00:33

Tracer Bullet(垂直切片)

来自《The Pragmatic Programmer》的核心概念。Matt Pocock 在 TDD 和 issue 拆分中强制使用。

核心思想

不是水平切分所有测试再实现,而是一次完成一个端到端切片

错误(水平):
  RED:   test1, test2, test3, test4, test5
  GREEN: impl1, impl2, impl3, impl4, impl5

正确(垂直):
  RED→GREEN: test1→impl1
  RED→GREEN: test2→impl2
  RED→GREEN: test3→impl3

为什么水平切片是反模式

  • 批量写的测试测的是"想象的行为",不是"实际的行为"
  • 测的是数据结构的"形状",不是用户可见行为
  • 重构时测试不动 — 行为变了测试还绿,行为没变测试红了
  • 提前提交到测试结构,还没理解实现

在 mattpocock/skills 中的应用

TDD(/tdd skill)

每个 cycle:一个测试 → 一个最小实现 → 下一个测试。

Issue 拆分(/to-issues skill)

每个 issue 是一个垂直切片:

  • 穿过所有集成层(schema → API → UI → tests)端到端
  • 完成后可独立演示/验证
  • 标记为 HITL(需人类交互)或 AFK(可独立完成)

PRD(/to-prd skill)

识别测试接缝(seams),优先用已有 seams,用最高层的 seam。

本质

垂直切片 = 反馈驱动 开发。每个切片给你一个信号:这条路走不走得通。水平切片 = 假设驱动,信号要到最后才有。