我如何通过SDD精通Claude Code

我以前开发每个功能都采用同样的方式:打开文件,把文件分享给 AI,要求做一些修改,然后自己搞定剩下的部分。这种方式确实有效,而且实际上效率还不错。

但有一个问题——AI 从来没有获得过足够的上下文,因此无法主动改进代码,除非你明确要求。

想象一下,你只是简单地把一个文件发给承包商,然后说:修一下这个!

"为什么要修?这个文件和什么有关联?错误确实出在这个文件里吗?我能添加哪些改进?"

承包商一定会感到一头雾水,对吧?

但如果你和承包商分享一份头脑风暴/开发规范文档,解释所有的"为什么"和"怎么做"。召开一些讨论会议来确定解决方案,在明确了需要完成的工作范围之后,双方达成一致来交付这个方案。

这样,承包商就能更高效地工作。AI 也同样可以做到!

当我们把 Claude CodeSpec-Driven Development(规范驱动开发) 结合起来时,这一切就成为可能。

为了让这一点更具体,让我们跟踪一个真实项目的每个阶段:在 Microsoft Fabric Lakehouse 上构建一个实时数据湖,遵循 MedalLion 架构。

我将从我的仓库中取出一个旧项目,让它焕发新生。但请注意关注 SDD 方法论本身,而不是项目本身。

0、五阶段流水线

SDD 回答的是做什么怎么做谁来做

最终产出不仅仅是代码。它是文档——解释了权衡取舍、每个步骤的计划,以及从过往对话中学到的经验教训。

每个阶段都会产出一份活文档,作为下一阶段的输入。对话之间不会丢失任何信息。

要调用每个阶段,你需要一个 .claude 文件夹,其中包含每个阶段的模板:

让我们用一个真实案例来解释每个阶段:

1、Brainstorm(头脑风暴)

当你与客户进行头脑风暴会议,或者对需要解决的问题只有一个模糊的想法时,使用这个阶段。

头脑风暴 Agent 通过结构化对话工作,每次只问一个问题。它会审查已有的内容,探索 2-3 种方案,强制进行 YAGNI(你不会需要它)思考,最终产出准备好进入 /define 阶段的草稿需求。

调用方式使用命令:

  • /workflow:brainstorm "Open DataLake with weather, swells, and waves on Microsoft Fabric"`
  • /workflow:brainstorm C:\Workspace\MEETING_DISCUSSION.md

有两种调用方式,我们先试试第二种:

一份完整的头脑风暴文档,解释了解决方案和各种权衡取舍。

最后,我们会进行评审,然后就可以进入下一步了。

2、Define(定义)

将头脑风暴转化为经过验证的需求文档,并设有可衡量的质量门禁。Agent 会从 5 个维度评分。低于 12/15 分将阻止进入下一阶段。

在这种情况下,模糊的需求可能变成 bug,我们在这里定义头脑风暴文档中所有未明确的缺口。

我们会得到另一份文档,解释这个阶段的所有内容:

例如,在这种情况下,它发现了一个缺口并提出问题:

回答这个问题后,它会更新 /define 文档:

我们准备好继续前进了!

3、Design(设计)

产出完整的技术讨论和蓝图:架构、关键决策和文件清单。

设计文档变成了一份执行计划。不是参考文档,而是一份脚本。

它会创建完整的项目结构,解释每个文件夹的用途和决策:

让我们仔细看看……

我们有架构概览部分:

组件以及关键决策(来自我们的头脑风暴和定义阶段)将如何应用到我们的项目中:

每个 Pipeline 的说明:

文件清单,基本上是一个目录的雏形:

每个 Notebook 要应用的代码模式,这是良好实践:

集成、测试策略、错误处理、配置等等:

你觉得哪个部分不合理,需要更改、删除或添加?

直接在文档中修改,然后和 AI 讨论。

如果你有一份好的头脑风暴文档,你就会得到一份好的定义文档。好的定义文档会创造出出色的设计文档。

设计文档……我们来看看!

4、Build(构建)

我们的构建 Agent 基本上会读取文件清单,按依赖关系排序工作,然后通过 Claude Task Pool 委派给各个 Agent。可以并行的就并行,必须串行的就串行。

见证奇迹的时刻到了:

Claude 会列出计划,并对每个文件请求你的确认:

配置文件、工具函数、Notebooks 文件夹、带有模拟环境 fixtures 的测试文件夹,以及种子数据——所有这些都是由 Claude 创建的,你可以在整个过程中进行审批:

我不是说你应该全盘接受,你需要验证每一步,审视代码。就像对待承包商一样。

最后,Claude 会添加一份新的构建文档,解释所完成的所有工作:

并为你提供 /ship 代码到 Fabric 的教程选项:

5、Ship(交付)

这里是 Claude 应用我们定义的交付策略的地方,它能够在终端中运行命令,并在云中创建所需的资源。

但我意识到在我们最新的文件中没有提到这一点。所以,让我们用 /iterate 来做一些修改。

我要求 Claude 在 Ship 流程中加入 Terraform,它会重写并更新所有文档和步骤,添加这个 Terraform 部分:

太疯狂了!

现在我们有了一个新的 Terraform 文件夹:

而且我们在构建报告中也有了新的 Ship 计划:

来看看是否能正常工作……

我首先运行开发环境:

一切就绪!终端中一切正常:

现在来看看 Fabric:

所有资源在不到 2 小时内构建并部署完成。从头脑风暴到部署不到 2 小时。我知道我已经说过一次了,但这真的太疯狂了!!!

这就是我目前使用 Claude Code 的方式,你可以改进并为这 5 个阶段创建自己的模板。

另一件事是创建专门的 Agent 来检查与你将在项目中使用的技术相关的知识库,添加技能是另一个选项,还有很多可以改进的地方。


原文链接: How I Master Claude Code with Spec-Driven Development

汇智网翻译整理,转载请标明出处