第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费用):

  1. 在claude.ai创建一个新Project
  2. 把你项目的关键文件上传到Project文档里
  3. 在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最值得花时间的使用方式。