Skip to content

Claude Code 高阶实践:先梳理需求再落地代码

很多人用 AI 编程时,默认动作都是:丢一个需求过去,然后等它开始写代码。 看起来很快,实际上常常越写越乱。

真正的问题通常不是 AI 不会写,而是它在还没真正理解系统之前,就已经动手了 。 一旦前面的理解错了,后面的实现越多,返工成本就越高。

如果要用一句话概括这套方法的核心,那就是:

在你亲自审完书面方案之前,不要让 Claude 开始写代码。

这不是保守,而是更高效的工程化协作方式。


一、为什么很多 AI 编程流程会失控?

Section titled “一、为什么很多 AI 编程流程会失控?”

最常见的 AI 编程流程大概是这样:

  1. 提需求
  2. AI 开始写
  3. 你发现方向不对
  4. 再让它改
  5. 改着改着,越来越偏

问题的根源不在“代码能力”,而在“决策时机”。

AI 很容易基于一些看似合理、实则不完整的理解提前行动,最终写出这种代码:

  • 单点上能工作,但和现有系统不协调
  • 忽略了已有缓存、抽象或约定
  • 重复实现项目中已经存在的逻辑
  • 技术上正确,但不适合当前项目
  • 改动了不该改的接口和结构

所以,真正成熟的 AI 编程,不是“想到就写”,而是:

先研究清楚,再形成方案,再人工修正,最后再执行。


二、这套 Claude Code 工作流的核心流程

Section titled “二、这套 Claude Code 工作流的核心流程”

整套方法可以拆成 6 个阶段:

  1. Research:先研究
  2. Plan:再写方案
  3. Annotate:人工批注修正
  4. Todo List:补成任务清单
  5. Implement:再开始实现
  6. Feedback & Iterate:执行中持续反馈

这套流程的本质,是把两件事强行拆开:

  • 思考
  • 编码

而这,恰恰是很多人用 AI 时最缺的一步。


三、Research:别让 AI “看一眼”,要让它“真正读懂”

Section titled “三、Research:别让 AI “看一眼”,要让它“真正读懂””

第一步不是让 Claude 写代码,而是让它先研究相关模块。

重点不是简单“看看代码”,而是要求它:

  • 深入理解某个目录或系统
  • 理解实现细节和特殊性
  • 找潜在 bug 或边界问题
  • 最后把研究结果写成一份文档

这里最关键的动作,不是“读”,而是把理解写下来

因为聊天里的总结很容易失真,也不方便审阅。 但一份研究文档有几个非常实际的价值:

  • 你可以检查它到底有没有理解对
  • 你可以在进入规划前先纠偏
  • 你可以把它作为后续计划的基础
  • 你可以避免 AI 在错误理解上继续推进

这一步真正解决的是 AI 最常见的问题:表面理解

它可能读了几个文件,也知道函数签名,但并不代表它真正理解了整个模块在系统中的角色。 而一旦你要求它把研究整理成完整文档,它的理解深度和可验证性就完全不同了。


四、Plan:先让它交设计稿,而不是直接交代码

Section titled “四、Plan:先让它交设计稿,而不是直接交代码”

研究完成之后,也不要立刻进入实现。 下一步应该是让 Claude 产出一份正式的方案文档。

一份好的方案,不应该只是几条待办,而应该至少包括:

  • 实现思路
  • 涉及的文件
  • 关键改动点
  • 代码片段示意
  • 风险与取舍
  • 为什么这么设计

这一步的价值在于: 你开始审阅的,不再是一堆已经写出来、很难回退的代码, 而是一份仍然可以低成本修改方向的设计方案

这会让整个协作过程从“修代码”变成“审设计”。

而审设计,远比修代码便宜。


五、为什么要用 markdown 文档,而不是直接靠对话?

Section titled “五、为什么要用 markdown 文档,而不是直接靠对话?”

因为文档比聊天更适合作为工程决策的载体。

把研究和计划都落到 markdown 文件里,有几个明显优势:

  • 可以持久保存
  • 可以在编辑器里直接批注
  • 可以反复修订
  • 可以在长会话中充当锚点
  • 可以随时回看,不用从聊天记录里翻决策

换句话说:

聊天适合推进过程,文档适合沉淀决策。

真正稳定的 AI 协作,不能只靠对话上下文,必须靠文档承接关键阶段成果。


六、最值钱的一步:人工批注方案,而不是立刻让它实现

Section titled “六、最值钱的一步:人工批注方案,而不是立刻让它实现”

这套工作流最有价值的环节,是方案写完之后的批注循环

流程很简单:

  1. Claude 先产出方案
  2. 你打开方案逐段审
  3. 直接在文档里写批注
  4. 让 Claude 根据批注更新方案
  5. 重复多轮,直到方案真正靠谱

这一轮人工批注,才是把“人的判断力”真正注入 AI 工作流的地方。

你修的不是语法,也不是措辞,而是这些更关键的东西:

  • 错误假设
  • 不符合业务的设计
  • 多余的复杂度
  • 不该引入的技术方案
  • 项目约定之外的实现方式
  • 团队默认规则和历史经验

Claude 很擅长理解代码、写计划、做实现。 但它天然不知道:

  • 你的项目优先级
  • 团队的习惯
  • 哪些复杂度值得付出
  • 哪些地方不能动
  • 哪些方案虽然“正确”,但不适合现在

这些都只能靠你来补。

所以这一步的意义,本质上就是:

让 AI 的方案从“合理”变成“适合你的项目”。


七、一个特别重要的护栏:先别实现

Section titled “七、一个特别重要的护栏:先别实现”

在批注阶段,有一个非常关键的原则:

只更新方案,不要开始实现。

这句话看起来简单,但非常重要。

因为 AI 一旦觉得自己“已经知道怎么做了”,就很容易直接往实现上冲。 可很多时候,这种“已经差不多了”的状态,其实离真正可落地还差很远。

所以,在你确认这些事情之前,都不应该让它动手:

  • 研究是否准确
  • 方案是否完整
  • 关键约束是否写清
  • 范围是否收敛
  • 取舍是否明确

只有这些都稳定了,实现才值得开始。


八、Todo List:让执行变得可追踪,而不是一团黑箱

Section titled “八、Todo List:让执行变得可追踪,而不是一团黑箱”

方案确认后,还应该再补一步: 让 Claude 把方案拆成细粒度任务清单。

这一步的意义,并不只是“列待办”,而是建立一个执行中的可视化真相

它至少有三个作用:

1. 把大任务拆成实际可执行的阶段

Section titled “1. 把大任务拆成实际可执行的阶段”

比如:

  • 数据层改动
  • 服务层改动
  • API 改动
  • 前端改动
  • 类型检查
  • 测试和回归

这样 AI 执行时,目标更清晰,路径也更稳定。

如果实现持续很久,没有任务清单,你很难判断:

  • 现在做到哪里了
  • 哪些完成了
  • 哪些漏了
  • 它是不是跳过了麻烦部分

而有了 todo list,再让 Claude 同步标记完成状态,你随时都能看清进度。

任务一旦明确拆开,AI 就没那么容易“做了 60% 就像 100% 一样汇报”。


九、Implement:真正高效的执行,反而要减少“自由发挥”

Section titled “九、Implement:真正高效的执行,反而要减少“自由发挥””

等到研究、规划、批注、拆解都完成后,才进入实现阶段。

而这时候,最理想的状态不是让 Claude 继续发挥创造力, 而是让它严格执行已经确定的方案

这一步最重要的,不是“写得快”,而是“写得稳”。

通常这里会配上非常明确的执行要求,例如:

  • 完整实现方案中的所有任务
  • 每完成一个阶段就更新计划文档
  • 不要中途停下来等待无意义确认
  • 不要加入多余注释和废话式文档
  • 不要偷懒使用宽泛类型
  • 持续做类型检查,边做边发现问题

这类约束本质上是在把实现阶段“机械化”。

听起来好像限制了 AI,实际上恰恰提高了交付质量。

因为真正需要创造力的地方,已经在前面的研究和批注里完成了。 到了执行阶段,越少跑偏,越高效。


十、为什么“实现变机械”,反而是高质量协作的标志?

Section titled “十、为什么“实现变机械”,反而是高质量协作的标志?”

很多人误以为 AI 编程的价值在于“它能自己想”。 其实在真实项目里,更重要的往往不是它会不会想,而是它能不能按正确思路稳定执行

当你把前面这些事情都做完:

  • 系统研究清楚了
  • 方案写明白了
  • 批注加完整了
  • 任务拆细了
  • 风险和边界都定了

那实现阶段最好的状态,反而应该是:

少想、多做、少偏、少返工。

这才是高质量 AI 协作最成熟的样子。


十一、执行中的反馈,反而应该越短越好

Section titled “十一、执行中的反馈,反而应该越短越好”

当 Claude 进入实现阶段后,你的角色就从“方案制定者”切换成了“执行监督者”。

这时候,反馈不需要很长。 相反,越短越有效。

因为完整背景已经在计划文档里,Claude 不需要每次都重新理解上下文。 你只需要指出偏差即可,比如:

  • 这个函数漏了
  • 页面放错地方了
  • 这个区域还裁切
  • 还需要更宽
  • 有间距问题
  • 样式要和现有页面一致

尤其是前端问题,短反馈非常有效。 很多视觉调整,本来就更适合快速迭代,而不是长篇描述。

如果能结合截图,效率会更高。 因为视觉问题很多时候“看到”比“描述”更直接。


十二、方向错了,不要修补,直接回滚重来

Section titled “十二、方向错了,不要修补,直接回滚重来”

这套方法里还有一个很务实的点: 如果某一轮实现明显走错方向,不要硬修。

更好的策略通常是:

  1. 回滚当前错误改动
  2. 重新缩小目标
  3. 基于更清晰的范围重新开始

因为 AI 很容易在错误前提上继续堆叠。 而在错误路线里不停补丁,通常只会让结果越来越复杂。

所以,与其在错误路径上打补丁, 不如干脆退回去,用更清楚的边界重新发起任务。

这往往更快。


十三、这套工作流最核心的价值:你始终在驾驶位

Section titled “十三、这套工作流最核心的价值:你始终在驾驶位”

这整套方法最重要的,不是让 Claude 更自动, 而是让你在使用 Claude 时,始终保留主动权。

Claude 负责什么?

  • 深读代码
  • 组织研究
  • 生成方案
  • 执行实现
  • 按计划推进
  • 持续修正细节

你负责什么?

  • 判断什么值得做
  • 约束哪些地方不能动
  • 决定复杂度是否合理
  • 砍掉不必要的范围
  • 覆盖错误技术选型
  • 保护项目真实需求和架构边界

这才是最合理的分工。

因为 AI 擅长执行和组织, 但对“项目现在真正需要什么”这件事,最终还是人更有判断力。


十四、长会话并不可怕,前提是你有文档作为锚点

Section titled “十四、长会话并不可怕,前提是你有文档作为锚点”

很多人担心,AI 在长上下文里会越来越不稳定。 但如果研究和计划都已经沉淀成文档,长会话反而是优势。

因为整个过程是连续积累的:

  • 前面研究,建立认知
  • 中间批注,修正理解
  • 后面执行,直接继承这些上下文

真正让长会话变稳的,不是“模型记性变好了”, 而是你把关键内容都落到了文档上。

这些文档就是整个协作过程的锚点。 哪怕聊天很长,关键决策也不会飘。


如果你只是写一个一次性脚本,或者做一个非常轻量的 demo, 这套流程可能显得有点重。

但只要进入这些场景,它就会非常有价值:

  • 功能涉及多个模块
  • 旧系统复杂,不能随便改
  • 项目有明确工程规范
  • 你不想反复返工
  • 你想让 AI 成为搭档,而不是失控的生成器
  • 你想保留架构和产品层面的主导权

简单说,这不是一套“让 AI 替你做决定”的方法, 而是一套“让 AI 在你的决策下高质量执行”的方法。


十六、最后总结:Claude Code 真正的高阶用法,不是快写,而是少返工

Section titled “十六、最后总结:Claude Code 真正的高阶用法,不是快写,而是少返工”

如果一定要给这套方法下一个结论,我会这么说:

Claude Code 最强的地方,不是让它一上来替你写代码,而是先让它研究、写方案、接受批注、拆任务,最后再稳定执行。

真正高胜率的 AI 编程,靠的从来不是神秘 prompt, 而是下面这些朴素但非常有效的原则:

  • 先研究,不要盲写
  • 先出方案,不要急着实现
  • 先批注,不要让错误假设落地
  • 先拆任务,不要让执行失控
  • 实现阶段强约束,减少自由发挥
  • 你始终保留判断权和方向盘

说到底,AI 编程真正追求的,不是“看起来很快”, 而是:

更可控、更稳定、更少返工。

而这,才是 Claude Code 在真实工程里最值得学的一种打开方式。


别让 Claude 直接写代码,先让它把系统研究透、把方案写清、把细节改对,再让它执行。真正高效的 AI 编程,不是快写,而是少走弯路。

如果你喜欢这类内容,请关注,或者想知道什么可以告诉我


原文链接: https://mp.weixin.qq.com/s/QtzS8QWUOgKVrdICqnUz0g