
阅读时长:约30分钟 难度:★★★★☆ 适合人群:学完前16课,想看前面所有知识点怎么串在一个真实项目里的开发者 学完之后:你会看到一个完整功能从需求到上线的全流程,每一步用了什么 Claude Code 能力
《Claude Code 从入门到精通》试读篇:Claude Code 是什么?你可能从第一步就用错了
《Claude Code 从入门到精通》试读篇:你的第一次 Director Mode 体验(二)
《Claude Code 从入门到精通》试读篇:写好 Prompt 的结构化思维,10组正反对比,看完直接套用(三)
《Claude Code 从入门到精通》试读篇:当 Claude 理解错了怎么办(四)
《Claude Code 从入门到精通》目标优于指令,Director Mode 第一支柱(五)
第06课:让 Claude 自己分配任务——并行 Agent 策略
《Claude Code 从入门到精通》第07课:结果验证——你最不能省的一步
第08课:CLAUDE.md,让 Claude 永远记住你的规矩
第09课:10个高频场景 Prompt 模板库,复制、改几个词、直接用
第12课:MCP 与 Hooks——给 Claude Code 装上插件和自动化引擎
第15课:3 个真实可用的 GitHub Actions,让 Claude 每天帮你自动做代码审查和安全扫描
前面16课都在教你各种方法、模式、工具。但你可能还是会有一个疑问:
"道理我都懂了,但在一个真实项目里,这些东西是怎么组合在一起的?"
实战篇三课回答的就是这个问题。每一课拆解一个完整的项目场景,从头到尾演示整个流程。
这节课的场景是:从零开发一个内容收藏功能模块。
为什么选这个场景?因为它是几乎每个应用都会有的功能——不管你做的是电商、内容平台、工具类应用,都可能需要让用户收藏某样东西。足够真实、足够具体、足够通用。
我会带你走完整个流程:从接到产品需求,到方案设计,到编码实现,到测试上线,到复盘。每一步我都会告诉你:用了前面哪一课的能力,为什么这样用。
假设你在一个中型技术团队里,项目是一个技术内容平台(类似掘金、CSDN)。
产品经理今早给你发了需求:
需求标题:文章收藏功能
用户价值:
- 用户可以把感兴趣的文章收藏起来,方便以后阅读
- 在个人中心可以看到自己的收藏列表
- 可以取消收藏
- 列表页和详情页要能看到收藏状态
技术要求:
- 下周四发布
- 要有充分的测试覆盖
- 不能影响现有的文章阅读性能
需求看起来简单,但如果你仔细想,这里面其实有不少决策点:
这些决策都会影响最终的实现。不做思考直接开写,最后很可能返工。
这就是为什么第一步不是写代码,是让 Claude 帮你做情报收集。
时间:周一早上 9:15
你刚收到需求。你对这个项目不是完全陌生——你在里面做过一些功能——但具体到"收藏"这个新功能涉及的部分,你需要先了解:
你打开 Claude Code,发了这段 prompt:
我要开发一个文章收藏功能。在开始写代码之前,帮我做情报收集。
同时启动5个 Explore Agent 并行扫描:
1. 扫描 src/modules/ 下所有模块的目录结构
(thoroughness: quick)
→ 找一个最合适的模块作为我的参考模板
→ 特别关注有没有类似"用户-内容"多对多关系的模块(比如点赞、评论)
2. 扫描用户(user)和文章(article)模块
(thoroughness: medium)
→ 了解这两个实体的完整数据结构
→ 找到它们当前的 Repository 查询方式
3. 扫描项目的数据库 migration 文件
(thoroughness: quick)
→ 了解项目的数据库设计惯例
→ 看看主键、时间戳、索引的约定
4. 扫描 src/common/ 和 src/utils/
(thoroughness: quick)
→ 找到项目的通用工具:分页、错误处理、响应格式化等
5. 扫描现有的 API 接口文档
(thoroughness: quick)
→ 了解接口路径、响应格式的约定
5个任务互不依赖,并行执行。给我一份综合报告。
Claude 并行启动了5个 Explore Agent,2分钟后返回了综合报告:
📊 情报汇总报告
1. 参考模板:
→ 发现 src/modules/like/ 模块实现了"用户点赞文章"功能
→ 这是一个多对多关系的典型实现,可以作为收藏功能的直接参考
→ 关键文件:
- like.entity.ts:数据模型
- like.service.ts:业务逻辑
- like.controller.ts:接口层
- like.repository.ts:数据访问层
2. 实体结构:
→ User 实体:id (UUID), email, username, created_at, updated_at
→ Article 实体:id (UUID), title, content, author_id, status,
view_count, like_count, created_at, updated_at, deleted_at
→ 注意:Article 已有 deleted_at 字段(软删除模式)
3. 数据库约定:
→ 主键:UUID,字段名 id
→ 时间戳:created_at, updated_at 自动维护
→ 软删除:deleted_at (nullable)
→ 索引命名:idx_[table]_[column]
→ 外键命名:fk_[table]_[reference]
4. 通用工具:
→ 分页:使用游标分页(CursorPagination),在 src/common/pagination.ts
→ 错误处理:AppError 类,错误码约定在 src/common/error-codes.ts
→ 响应格式:{ code, msg, data },自动包装在拦截器里
5. API 约定:
→ 路径:RESTful 风格,/api/v1/[resource]
→ 认证:所有接口默认需要 JWT,用 @Public() 装饰器标记公开接口
→ 文档:使用 @nestjs/swagger,每个接口有完整注解
关键发现:
⚠️ like 模块的实现中有一个性能问题——列表页每个文章都单独查一次点赞状态
(N+1问题)。如果你要做收藏功能,建议在设计时就避免这个问题。
这2分钟的情报收集省了多少事?
如果没用 Agent,你需要:
总计至少45分钟。 而且你很可能不会注意到那个 N+1 问题——那是 Claude 在扫描过程中额外发现的。