第03章:Claude Code——让AI帮你思考架构
第03章:Claude Code——让AI帮你思考架构
2025年5月,Anthropic发布了Claude Code——一个运行在命令行里的AI编程助手。
很多人第一反应是:又一个AI编程工具,有什么不一样?
Claude Code和Cursor最大的不同,不在于功能,而在于适用场景:
- Cursor在编辑器里,更适合"当前这段代码"的开发工作
- Claude Code在命令行里,更适合"这个项目"层面的大范围任务
当你需要理解一个10万行的代码库,或者做跨越20个文件的重构,Claude Code的长上下文优势就会非常明显。
为什么Claude在代码上的理解能力特别强
Claude模型的特点之一是超长上下文窗口(Claude 3.5 Sonnet支持200K tokens)。
在代码工作里,这意味着:
- 可以一次性把整个模块的所有相关文件都放进上下文
- 做重构时,AI能看到你想改的代码和它所有的调用方
- 理解复杂的业务逻辑时,不需要来回拆分上下文
相比之下,上下文窗口更小的模型,在处理大型项目时更容易"忘记"之前说过的东西,导致生成的代码和项目其他部分不一致。
安装和基本使用
安装:
npm install -g @anthropic-ai/claude-code
配置API key:
export ANTHROPIC_API_KEY=your_key_here
进入项目目录,启动:
cd your_project
claude
核心使用场景
场景一:理解陌生代码库
你接手了一个新项目,或者需要为一个大型开源项目做贡献。花1-2小时读代码,还是10分钟用Claude Code建立基本认知?
提示词:
分析这个代码库的整体架构:
1. 这是什么类型的项目,核心功能是什么?
2. 项目的层次结构(按功能或技术层划分)
3. 主要的数据流:请求进来,经过哪些层,最终返回什么
4. 最重要的5个文件/模块是什么,它们各自负责什么
5. 代码里有没有明显的技术债或值得注意的地方
Claude Code会读取你项目里的文件,给你一个准确的架构概述。这不是幻觉,是基于真实代码的分析。
场景二:大范围重构规划
你想把一个Monolith拆成微服务,或者把代码里分散的数据库操作集中到Repository层。这种任务影响面大,需要仔细规划。
提示词:
我想把这个项目里所有直接用SQLAlchemy的数据库操作
重构到Repository层(参考repositories/user.py的模式)。
请:
1. 列出所有直接进行数据库操作的文件和函数
2. 把这些操作按照对应的数据模型分组
3. 为我生成一个重构计划:先动哪个模块,为什么,每步的影响范围是什么
4. 有没有特别需要注意的地方(比如某个地方的操作很复杂,容易出bug)
场景三:自主完成一个功能
Claude Code支持"agentic mode"——给它一个任务,它会自动决定读哪些文件、怎么改、改完后自动运行测试看结果,直到任务完成。
提示词:
给这个项目增加邮箱验证功能:
1. 用户注册后,发送验证邮件(邮件服务用SMTP,配置在config.py里)
2. 提供验证链接的处理路由(/verify-email/<token>)
3. 用户在验证邮箱前,无法使用某些功能(参考@decorators.py里的login_required实现一个similar_required)
4. 写测试,验证发送邮件和验证流程都正常
运行测试确认没有破坏现有功能。
在agentic mode下,Claude Code会:
- 读相关文件理解现有代码
- 自行写代码
- 运行测试
- 看到错误后修复
- 再运行测试,直到通过
你全程只需要监督和决定最终是否接受。
场景四:代码审查
在提交PR之前,让Claude Code做一次代码审查。
提示词:
审查我今天修改的代码(git diff HEAD~1 的内容):
1. 有没有潜在的安全问题(SQL注入、XSS、不当的权限检查等)
2. 有没有明显的逻辑错误
3. 性能方面有没有问题(比如N+1查询、不必要的循环)
4. 代码风格和项目其他地方一致吗
5. 有没有缺失的错误处理
每个问题给出具体的代码位置和建议的修复方式。
Claude Code vs Cursor:怎么选
| 任务类型 | 推荐工具 | 原因 |
|---|---|---|
| 日常编写功能 | Cursor | 编辑器内,上下文切换少 |
| 代码补全 | Cursor | 实时性更好 |
| 理解大型代码库 | Claude Code | 长上下文优势 |
| 跨50+文件的重构 | Claude Code | 一次性处理更多文件 |
| 自主完成复杂任务 | Claude Code | Agentic模式更成熟 |
| 快速生成某个模块 | Cursor Composer | 可视化diff更直观 |
| PR审查 | Claude Code | 可以运行命令获取diff |
实际工作中,我两个都用:Cursor做日常开发,Claude Code做需要大上下文的复杂任务和代码审查。
Claude Code的Projects功能
如果你用Claude.ai的Pro订阅,可以用Projects功能来实现类似Claude Code的效果(不需要额外的API费用):
- 在claude.ai创建一个新Project
- 把你项目的关键文件上传到Project文档里
- 在Project里每次对话都会有这些文件作为上下文
这个方式的缺点是手动上传文件,更新不方便。但如果你不想管API计费,这是一个可行的替代。
安全使用Claude Code的注意事项
Claude Code在agentic mode下有权限执行命令(读写文件、运行测试)。使用时要注意:
不要在生产环境里运行
只在本地开发环境里用,确保它不能访问到生产数据库或其他生产资源。
检查它要执行的每个命令
Claude Code在执行操作前通常会告诉你它要做什么,看清楚再允许。
Git提交之前自己审查
不要让AI直接push代码。让它帮你写,你确认后自己commit。
敏感信息不要出现在prompt里
不要把数据库密码、API key等信息直接说给Claude Code,它可能会写进代码里。
如果今天只记一件事:Claude Code的最大价值是长上下文——当任务需要AI同时理解整个代码库或者跨很多文件操作时,Claude Code比在编辑器里问AI的效果好得多。学会用"自主完成任务"模式,是Claude Code最值得花时间的使用方式。