首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Claude Code 实战指南(一):环境构建与 TDD 核心循环

Claude Code 实战指南(一):环境构建与 TDD 核心循环

作者头像
被测试耽误的大厨
发布2026-05-18 15:43:57
发布2026-05-18 15:43:57
2410
举报

上面两篇文章主要讲述了Agent Skills的意义,很多朋友私信留言,说太偏理论了,想要看一些代码实战类的,所以就先从Claude Code开始吧,本系列(Claude Code)大概会有五篇,由浅入深的进行实战。

前言:为什么需要“终端代理”?

传统的 AI 编程助手(如 GitHub Copilot)主要存在于 IDE 的侧边栏中,充当“自动补全”的角色。然而,Claude Code 代表了一种全新的范式——终端代理(Terminal Agent)。

它不仅仅是生成代码,它拥有工具使用权(Tool Use):它可以遍历文件系统、运行测试、执行 Shell 命令、甚至通过 MCP 协议连接数据库。本篇将带你跨过通过“聊天框”写代码的初级阶段,掌握直接在终端指挥 AI 的核心能力。

生产级环境安装:避开 Node.js 的坑

虽然 Claude Code 可以通过 npm 安装,但在实战中,强烈推荐 Native Installation(原生安装)。这是为了规避 Node.js 版本管理(nvm/n)带来的权限混乱和 PATH 路径丢失问题。

推荐安装方案 (Native)

macOS / Linux / WSL2:
代码语言:javascript
复制
Bash curl -fsSL https://claude.ai/install.sh | bash

此脚本会将二进制文件安装到 ~/.local/bin,确保该路径在你的 $PATH 中。

Windows (PowerShell):

Windows 用户必须注意:Claude Code 在 Windows 上强依赖 Git Bash 环境来执行类 Unix 命令。

PowerShell

代码语言:javascript
复制
irm https://claude.ai/install.ps1 | iex

关键配置: 如果你的 Git 安装在非标准路径,Claude 可能无法启动。必须显式设置环境变量:

PowerShell

代码语言:javascript
复制
$env:CLAUDE_CODE_GIT_BASH_PATH="C:\Program Files\Git\bin\bash.exe"

建议将此变量写入系统环境变量中。

环境体检:/doctor

安装完成后,不要急着运行,先进行“体检”。

代码语言:javascript
复制
Bash
claude doctor

此命令会检查:

  • • 网络连接:是否能连接 Anthropic API。
  • • 权限:~/.claude 配置目录是否可写。
  • • MCP 服务:已配置的 MCP Server 是否健康。

核心实战:代理循环 (The Agentic Loop)

Claude Code 的工作流不同于 ChatGPT。它遵循 “探索(Explore) -> 规划(Plan) -> 执行(Act) -> 验证(Verify)” 的循环。

下面将通过一个 Python 项目的从零构建来演示这个循环。

初始化与脚手架

不要手动创建文件夹。在终端输入:

代码语言:javascript
复制
Bash
mkdir claude-lab && cd claude-lab
claude
Prompt:
“初始化一个 Python 项目结构。我们需要一个 CLI 工具来分析 CSV 文件。请创建 src/ 和 tests/,生成 requirements.txt(包含 pandas, pytest),并生成一个针对 Python 优化的 CLAUDE.md。”
代码语言:javascript
复制

╭─── Claude Code v2.1.47 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                  │ Tips for getting started                                                                                                                                                        │
│           Welcome back!          │ Ask Claude to create a new app or clone a repository                                                                                                                            │
│                                  │ ────────────────────────────────────────────────────                                                                                                                            │
│                                  │ Recent activity                                                                                                                                                                 │
│                                  │ No recent activity                                                                                                                                                              │
│                 ✻                │                                                                                                                                                                                 │
│                 |                │                                                                                                                                                                                 │
│                ▟█▙               │                                                                                                                                                                                 │
│             ▗ ▗   ▖ ▖            │                                                                                                                                                                                 │
│                                  │                                                                                                                                                                                 │
│               ▘▘ ▝▝              │                                                                                                                                                                                 │
│   Opus 4.6 · API Usage Billing   │                                                                                                                                                                                 │
│       ~/workspace/cc_test        │                                                                                                                                                                                 │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

  Welcome to Opus 4.6

❯ 初始化一个 Python 项目结构。我们需要一个 CLI 工具来分析 CSV 文件。请创建 src/ 和 tests/,生成 requirements.txt(包含 pandas, pytest),并生成一个针对 Python 优化的 CLAUDE.md。                                     
                                                                                                                                                                                  
⏺ I'll create the project structure for you. Let me set up all the files in parallel.                                                                                                                                 
                                                                                                                                                                                                                    
⏺ Bash(mkdir -p /Users/guoss/workspace/cc_test/src /Users/guoss/workspace/cc_test/tests)                                                                                                                              
  ⎿  Done                                                                                                                                                                                                           
                                                                                                                                                                                                                      
⏺ Write(src/__init__.py)                                                                                                                                                                                              
  ⎿  Wrote 1 lines to src/__init__.py                                                                                                                                                                                 
     (No content)                                                                                                                                                                                                     
                                                                                   
⏺ Write(src/cli.py)                                                                                                                                                                                                   
  ⎿  Wrote 55 lines to src/cli.py                                                                                                                                                                                   
     """CSV 文件分析 CLI 工具。"""                                                                                                                                                                                    
                                                                                                                                                                                                                      
     import argparse                                                                                                                                                                                                  
     import sys                                                                                                                                                                                                       
                                                                                                                                                                                                                      
     import pandas as pd                                                                                                                                                                                              


     def parse_args(argv=None):
         parser = argparse.ArgumentParser(description="CSV 文件分析工具")
     … +45 lines (ctrl+o to expand)

⏺ Write(tests/__init__.py)
  ⎿  Wrote 1 lines to tests/__init__.py
     (No content)

⏺ Write(tests/test_cli.py)
  ⎿  Wrote 63 lines to tests/test_cli.py
     """cli 模块的单元测试。"""                                                                                                                                                                                       

     import os                                                                                                                                                                                                        
     import tempfile                                        

     import pandas as pd
     import pytest

     from src.cli import analyze, parse_args

     … +53 lines (ctrl+o to expand)

⏺ Write(requirements.txt)
  ⎿  Wrote 2 lines to requirements.txt
     pandas>=2.0                                                                                                                                                                                                      
     pytest>=7.0
                                                                                                                                                                                                                      
                                                            
⏺ Write(CLAUDE.md)
  ⎿  Wrote 30 lines to CLAUDE.md
     # CSV Analyzer - Claude Code 项目指南                                                                                                                                                                            

     ## 项目概述                                                                                                                                                                                                      
                                                            
     CSV 文件分析 CLI 工具,基于 Python + pandas 构建。

     ## 项目结构

     ```
     src/          # 源代码
     … +20 lines (ctrl+o to expand)

⏺ 项目结构已创建完成:                                                                                                                                                                                                

  cc_test/                                                                                                                                                                                                            
  ├── CLAUDE.md            # 项目指南(开发命令、代码规范)
  ├── requirements.txt     # pandas, pytest                                                                                                                                                                           
  ├── src/                                                                                                                                                                                                            
  │   ├── __init__.py
  │   └── cli.py           # CLI 入口 + CSV 分析逻辑
  └── tests/
      ├── __init__.py
      └── test_cli.py      # 7 个测试用例

  src/cli.py 已包含基础功能:
  - --summary 显示概要统计
  - --head N 显示前 N 行
  - --columns col1 col2 筛选指定列

  tests/test_cli.py 覆盖了参数解析、基础分析、head/summary/columns 筛选及无效列报错。

  可以通过 pip install -r requirements.txt && pytest tests/ -v 安装依赖并运行测试。

✻ Sautéed for 37s

────────────────────

AI 的动作: Claude 会执行 ls 确认目录为空。 执行 Bash(touch...) 创建文件。

自动生成 CLAUDE.md(这是项目的“说明书”,后续章节详述)。

TDD(测试驱动开发)闭环

最稳健的实战模式是让 Claude 先写测试,再写代码。

第一步:红(编写失败测试)

“在 tests/test_analyzer.py 中写一个测试。输入是一个包含 'name,age' 的 CSV 内容,期望输出平均年龄。不要实现功能,只写测试并运行。”

Claude 会创建测试文件,运行 pytest,并报告 FAILED(因为代码还不存在)。这一步至关重要,它验证了 AI 对环境的控制力以及对需求的理解。

第二步:绿(实现功能) Claude 会看到错误日志,并主动询问:“测试失败了,是否需要我创建实现代码?” 你只需确认。Claude 会:

  • • 读取测试文件理解需求。
  • • 创建 src/analyzer.py。
  • • 自动安装缺失的依赖(如 pandas)。

再次运行 pytest 直到变绿。

成本与模型管理

Claude Code 默认使用 Sonnet 模型,但在处理复杂任务时会自动升级到 Opus。这可能导致成本失控。

监控成本: 随时输入 /cost 查看当前会话消耗。

强制模型: 如果只想用便宜的模型进行简单任务,可以使用:

代码语言:javascript
复制
claude --model claude-4-5-haiku-20241022

或者在会话中输入 /model 切换。

代码语言:javascript
复制

╭─── Claude Code v2.1.47 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                  │ Tips for getting started                                                                                                                                                        │
│           Welcome back!          │ Ask Claude to create a new app or clone a repository                                                                                                                            │
│                                  │ ────────────────────────────────────────────────────                                                                                                                            │
│                                  │ Recent activity                                                                                                                                                                 │
│                                  │ No recent activity                                                                                                                                                              │
│                 ✻                │                                                                                                                                                                                 │
│                 |                │                                                                                                                                                                                 │
│                ▟█▙               │                                                                                                                                                                                 │
│             ▗ ▗   ▖ ▖            │                                                                                                                                                                                 │
│                                  │                                                                                                                                                                                 │
│               ▘▘ ▝▝              │                                                                                                                                                                                 │
│   Opus 4.6 · API Usage Billing   │                                                                                                                                                                                 │
│       ~/workspace/cc_test        │                                                                                                                                                                                 │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

  Welcome to Opus 4.6

❯ /model  
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Select model
 Switch between Claude models. Applies to this session and future Claude Code sessions. For other/previous model names, specify with --model.

   1. Default (recommended)  Use the default model (currently Sonnet 4.6) · $3/$15 per Mtok
   2. Sonnet (1M context)    Sonnet 4.6 for long sessions · $6/$22.50 per Mtok
   3. Opus                   Opus 4.6 · Most capable for complex work · $5/$25 per Mtok
   4. Opus (1M context)      Opus 4.6 for long sessions · $10/$37.50 per Mtok
   5. Haiku                  Haiku 4.5 · Fastest for quick answers · $1/$5 per Mtok
 ❯ 6. claude-opus-4-6 ✔      Custom model

 ▌▌▌ High effort (default) ← → to adjust

 Enter to confirm · Esc to exit

本篇总结

你现在已经拥有了一个能够“自我纠错”的开发环境。Claude Code 不仅仅是写代码,它是你终端里的一个 Loop,你给出一个目标,它通过不断执行命令和分析输出来逼近这个目标。

下一篇,将探讨如何通过 Memory Bank(记忆库) 模式,解决 AI 在长对话中“失忆”的问题,这是从玩具项目走向工程项目的关键。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈测试开发之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:为什么需要“终端代理”?
  • 生产级环境安装:避开 Node.js 的坑
    • 推荐安装方案 (Native)
      • macOS / Linux / WSL2:
      • Windows (PowerShell):
    • 环境体检:/doctor
  • 核心实战:代理循环 (The Agentic Loop)
    • 初始化与脚手架
    • TDD(测试驱动开发)闭环
  • 成本与模型管理
  • 本篇总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档