目标:完成第一次与 Claude 的交互,理解基本工作模式
预计时间:20 分钟
对应官方文档:Common Workflows
启动 Claude Code
在你的项目根目录打开终端,运行:
claudeClaude 会自动加载当前目录作为工作上下文。
会话交互时序图
以下是你与 Claude 在一次典型会话中的交互流程:
场景一:添加一个简单功能
假设你有一个 Python 项目,想添加一个计算斐波那契数列的函数。
输入提示词:
> 请在 utils.py 中添加一个 fibonacci(n) 函数,返回第 n 个斐波那契数。要求使用缓存优化性能。
Claude 会做什么:
- 读取
utils.py的内容 - 分析 文件结构、导入语句、代码风格
- 生成 符合项目风格的代码
- 询问 你是否同意修改
I'll add a fibonacci function to utils.py. Here's my plan:
1. Add functools.lru_cache import
2. Add the fibonacci(n) function with docstring
Allow edit to utils.py? (Y/n/b/d)
你的选择:
| 按键 | 含义 |
|---|---|
| Y | 同意修改(或按回车) |
| n | 拒绝修改 |
| b | 查看 diff(改了什么) |
| d | 查看完整修改后的文件 |
查看 diff(按 b):
+ from functools import lru_cache
+
+ @lru_cache(maxsize=None)
+ def fibonacci(n: int) -> int:
+ """Return the nth Fibonacci number."""
+ if n < 0:
+ raise ValueError("n must be non-negative")
+ if n < 2:
+ return n
+ return fibonacci(n - 1) + fibonacci(n - 2)满意的话按 Y 确认。
场景二:修复一个 Bug
假设测试失败了,你可以把错误信息贴给 Claude:
> 测试报错了:
> FAILED tests/test_math.py::test_divide - ZeroDivisionError: division by zero
>
> 请修复这个问题。
Claude 会:
- 读取
tests/test_math.py和相关的源码 - 分析错误原因
- 提出修复方案(比如添加除零检查)
- 运行测试验证修复
场景三:解释复杂代码
看到一段看不懂的代码?直接问:
> 请解释 auth/middleware.py 中 verify_token 函数的工作原理
Claude 会逐行分析,并用通俗的语言解释。
常用对话模式
1. 直接请求(最常用)
> 把用户注册功能改成异步的
2. 多步骤任务
> 1. 创建一个新的 API 端点 /health
> 2. 返回 JSON: {"status": "ok", "timestamp": "..."}
> 3. 添加对应的测试
3. 询问建议
> 我想优化数据库查询性能,有什么建议?
4. 代码审查
> 请审查 src/api.py,看看有没有安全问题
更多代码示例
示例 1:让 Claude 创建一个新文件
> 创建一个 Python 脚本 scripts/greet.py,接收 --name 参数并输出问候语
Claude 会生成类似以下代码:
#!/usr/bin/env python3
import argparse
def main():
parser = argparse.ArgumentParser(description="Greet someone")
parser.add_argument("--name", default="World", help="Name to greet")
args = parser.parse_args()
print(f"Hello, {args.name}!")
if __name__ == "__main__":
main()确认后运行验证:
python scripts/greet.py --name Alice预期输出:Hello, Alice!
示例 2:让 Claude 批量重命名变量
> 把 src/config.py 里所有的 API_KEY 改成 api_key(小写蛇形命名)
Claude 会:
- 搜索
src/config.py中所有API_KEY出现的位置 - 展示 diff:
- API_KEY = os.getenv("API_KEY")
+ api_key = os.getenv("API_KEY")- 确认后自动修改,并提示是否运行相关测试
示例 3:多步骤重构指令
> 1. 读取 src/models.py
> 2. 将 User 类中的验证逻辑提取到 validators.py
> 3. 在 models.py 中导入并使用新的验证器
> 4. 运行相关测试确保没有破坏
Claude 会逐步执行每一步,每步都向你展示变更并请求确认。
实战场景
场景 1:为新功能补充单元测试
背景:你刚让 Claude 在 utils.py 中添加了 fibonacci(n) 函数,现在需要补充对应的单元测试。
操作步骤:
- 在 Claude Code 中继续同一会话,输入:
> 为刚才添加的 fibonacci 函数创建单元测试,放在 tests/test_utils.py > 要求覆盖:正常输入、边界值 n=0 和 n=1、负数异常 - Claude 读取现有测试文件结构,生成测试代码并展示 diff
- 按
b查看 diff,确认测试用例完整后按Y接受 - Claude 询问是否运行测试,按
Y确认 - 终端显示:
tests/test_utils.py::test_fibonacci_normal PASSED tests/test_utils.py::test_fibonacci_boundary PASSED tests/test_utils.py::test_fibonacci_negative PASSED
预期结果:tests/test_utils.py 新增 3 个通过测试,函数覆盖率达到 100%。
场景 2:审查并修复安全漏洞
背景:你在审查 src/auth.py 时怀疑密码校验存在时序攻击漏洞,想让 Claude 帮你分析并修复。
操作步骤:
-
启动 Claude Code 并输入:
> 请审查 src/auth.py 中的 verify_password 函数,是否存在时序攻击漏洞?如果有,请修复。 -
Claude 读取
src/auth.py,分析verify_password实现 -
Claude 回复类似如下分析:
发现问题:当前使用简单的字符串比较 `input_pw == stored_pw`, 攻击者可以通过测量响应时间逐字节猜测密码。 修复方案:使用 hmac.compare_digest 进行常量时间比较。 -
展示 diff:
+ import hmac def verify_password(input_pw: str, stored_pw: str) -> bool: - return input_pw == stored_pw + return hmac.compare_digest(input_pw.encode(), stored_pw.encode()) -
按
Y接受修改,再让 Claude 运行安全相关测试:> /test tests/test_auth.py
预期结果:src/auth.py 中的密码比较改为常量时间比较,相关测试全部通过,安全漏洞被修复。
重要:始终审查 AI 的更改
AI 不是完美的,你需要:
- ✅ 查看 diff(按
b) - ✅ 运行测试验证
- ✅ 检查是否有副作用
- ✅ 确认业务逻辑正确
Claude 会尽量安全,但最终责任在你。
退出会话
> /exit
或按 Ctrl+D。
会话会自动保存,下次可以用 claude --continue 恢复。