Claude Code CLI 实战案例——不同场景案例实操

Claude Code 是Anthropic公司推出的AI编程辅助工具,基于大语言模型训练而成,专注于为开发者提供"需求转代码"、"代码调试"、"代码优化"、"技术问答"等全流程编程支持。它区别于普通的代码编辑器插件,具备更强的上下文理解能力,能精准捕捉开发者的需求意图,生成符合规范、可直接运行的代码,同时支持多编程语言、多开发场景,大幅降低编程门槛、提升开发效率。

开发环境:Ubuntu24.04Claude code 2.1.177deepseek-v4-flash模型

案例一:Python 数据处理------批量处理Excel文件

在日常的数据处理工作中,我们经常会遇到需要从多个零散的 Excel 文件中提取、清洗并汇总数据的场景。如果纯靠手工复制粘贴,不仅耗时耗力,还容易出错。

本案例将从一个实际的"学生成绩汇总"需求出发,完整演示从需求分析、AI 提示词构建、代码生成到本地测试调整的全过程。

1. 需求分析

假设我们接到了这样一个任务: 在本地存在一个名为 Studentdata 的文件夹,里面存放了多个 .xlsx 格式的 Excel 文件。每个文件记录了不同班级的学生信息,包含"姓名、年龄、班级、成绩"四列。

我们需要实现以下目标:

  1. 批量读取:遍历并读取该文件夹下的所有 Excel 文件。
  2. 数据清洗与筛选 :找出所有成绩 ≥80分 的优秀学生。
  3. 合并导出 :将筛选后的数据拼接到一起,并导出为一个名为 优秀学生.xlsx 的新文件,存回原文件夹。
  4. 健壮性要求(异常处理) :脚本必须能应对各种突发状况,例如:目标文件夹不存在、个别文件缺少"成绩"列、或者成绩数据被填成了非数字字符等。

明确了需求后,我们就可以借助 Claude Code CLI 来快速生成生产级别的代码了。

2. 环境准备与操作流程

(1)初始化工作目录

创建项目文件夹 Studentdata

bash 复制代码
mkdir -p ~/claude_code/Studentdata
cd ~/claude_code

Studentdata 文件夹内放入三个.xlsx文件。

正常数据.xlsx

姓名 年龄 班级 成绩
张三 18 一班 85
李四 19 一班 72
王五 18 二班 90
赵六 20 二班 65
孙七 19 三班 88

缺失列.xlsx

姓名 年龄 班级
周八 18 四班
吴九 19 四班

脏数据.xlsx

姓名 年龄 班级 成绩
郑十 18 五班 92
陈十一 19 五班 缺考
林十二 20 六班 N/A
黄十三 18 六班 75
刘十四 19 七班 81

(2)启动 Claude Code CLI 并输入提示词

启动claude code cli并在交互界面输入以下提示词:

markdown 复制代码
"请编写一个 Python 脚本来批量处理 Excel 文件,并实现一个'开发-运行-验证'的闭环。

核心需求:

1.  读取当前目录下'Studentdata'文件夹内所有.xlsx文件。
2.  筛选出成绩≥80分的学生。
3.  将结果合并并保存为'Studentdata/优秀学生.xlsx'。
4.  必须处理:文件夹不存在、无'成绩'列、成绩非数字(转为数值或丢弃)的情况。

闭环迭代要求:

1.  代码编写:请先生成完整的 Python 代码。

2.  自我测试:请在生成的代码后,紧跟一段'测试验证逻辑'(例如:如果文件未生成,打印报错;如果文件已生成,读取并打印前5行数据以确认列名和成绩)。

3.  运行与验证:编写完成后,请使用 `/run` 指令执行该脚本。

4.  反馈修正:

    -   如果运行报错,请根据终端输出的错误信息,直接修正代码并重新运行。
    -   如果脚本运行成功,请读取生成的'优秀学生.xlsx'的概况(使用 `pd.read_excel().head()`),判断是否符合筛选逻辑(检查成绩列是否全≥80)。
    -   若结果不符合要求,请分析原因并重新修改代码,直到验证通过。

请开始编写代码并执行第一次验证。"

(3)Claude Code CLI 完成结果

claude交互端输出如下:

使用 LibreOffice Calc 查看 优秀学生.xlsx

案例二:JavaScript 网页交互------点击按钮实现页面切换

在案例二中,我们将视线转向前端开发,挑战一个经典的"JavaScript 网页交互"实战案例:多页面平滑切换

前端开发往往涉及 HTML、CSS 和 JS 的繁杂配合,手写基础结构和动画效果不仅费时,还容易在响应式适配上踩坑。我们将通过 Claude Code CLI,从零构建一个带淡入淡出动画、适配移动端的单文件应用。

1. 需求分析

我们本次要实现的是一个轻量级的"三页合一"展示型网页,具体需求如下:

  1. 页面构成:包含"首页"、"关于我们"、"联系我们"三个逻辑页面。
  2. 交互逻辑:提供 3 个导航按钮,点击后平滑切换到对应的页面内容。
  3. 视觉动效 :切换时需有"淡入淡出"的过渡效果;按钮需具备 hover 悬停反馈;标题居中显示。
  4. 终端适配:要求代码具备响应式布局(Responsive Design),在普通电脑屏幕和手机端都能完美显示。
  5. 工程规范:HTML、CSS、JS 代码结构清晰、分离编写,并附带详细中文注释。最终整合输出,确保双击即可在浏览器直接运行。

2. 环境准备与操作流程

(1)创建项目空间

bash 复制代码
mkdir -p ~/2-web_interactive_project
cd ~/2-web_interactive_project

(2)启动 Claude Code CLI 并输入提示词

markdown 复制代码
"请协助我开发一个单文件网页 `page-switch.html`,实现页面切换交互。

核心需求:

1.  结构:整合 HTML、CSS 和 JavaScript。包含首页、关于我们、联系我们,且适配移动端响应式布局。
2.  效果:按钮需有 hover 反馈;页面切换需实现 0.5s 平滑的淡入淡出(使用 CSS `opacity` 和 `transition`)。
3.  布局:页面标题居中,导航在移动端自动折叠或堆叠。

闭环测试与迭代指令:

1.  代码生成:请先生成完整的单文件代码,并保存为 `page-switch.html`。

2.  自动测试逻辑:

    -   使用 `/run` 指令在后台尝试启动一个简单的 Python HTTP 服务器(`python3 -m http.server 8000`),以便后续通过 localhost 访问。
    -   **自我验证**:请检查页面 HTML 结构是否包含对应的 ID/Class。如果代码中有逻辑错误,请根据 HTML 结构修正 JS 事件绑定。

3.  迭代反馈:

    -   如果你在执行测试时发现无法切换页面,或者页面布局不响应,请自动分析 CSS 类名错误或 JS 元素查找失败的原因。
    -   请重新修改代码并覆盖原文件,直到确保页面切换功能符合需求。

4.  最终输出:

    -   迭代测试通过后,请告知我:'测试成功,页面已准备就绪'。
    -   给出完整的代码块,并提供如何在 Ubuntu 终端通过 `firefox page-switch.html` 打开预览的指引。"

(3)Claude Code CLI 完成结果

claude交互端输出如下:

通过 firefox /home/daviddou/claude_code/2-web_interactive-project/page-switch.html 指令可以打开网页进行查看。

生成的网页效果如下:

案例三:Java 基础------实现学生信息管理系统(简单版)

对于刚接触 Java 面向对象编程(OOP)的开发者来说,手写实体类、管理集合、处理控制台输入异常往往是一个需要反复调试的过程。本例将演示如何在 Ubuntu 环境下,利用 Claude Code CLI 快速搭建一个包含"增、查、删"功能的简单版学生信息管理系统,并完成本地编译与异常测试。

1. 需求分析

我们要开发的是一个基于控制台(Console)交互的纯 Java 应用程序。为了让系统具备一定的健壮性和规范性,我们设定了以下核心需求:

  1. 功能完备:支持添加学生(姓名、学号、年龄)、查询所有学生(按学号升序)、根据学号删除学生。
  2. 交互设计:通过控制台打印菜单,用户输入数字(1-4)进行功能选择与系统退出。
  3. 工程规范 :严格使用面向对象思想 ,将学生抽象为独立的 Student 类,并与主程序逻辑解耦。代码需附带详细注释。
  4. 健壮性要求(异常处理) :在用户输入非数字、添加重复学号、删除不存在的学号或年龄输入为负数时,系统不能崩溃,必须给出友好的错误提示并允许重新输入。

2. 环境准备与操作流程

(1)创建项目空间

bash 复制代码
mkdir -p ~/3-java_student_system
cd ~/3-java_student_system
# 检查 javac 是否安装(若未安装可通过 sudo apt install default-jdk 安装) 
javac -version

(2)启动 Claude Code CLI 并输入提示词

markdown 复制代码
"请协助我开发一个 Java 学生信息管理系统 `StudentManagementSystem.java`,并实现自动化测试闭环。

核心需求:

1.  功能:实现 Student 类(姓名、学号、年龄)及管理系统,支持添加、查询(学号排序)、删除。
2.  健壮性:处理输入非数字、学号重复、删除不存在学号、负数年龄等异常。
3.  单文件整合:所有代码逻辑放在同一个 Java 文件中。

自动化测试闭环要求:

1.  编写测试样例:请在完成 Java 代码后,创建一个名为 `test_script.txt` 的输入文件,里面写入一系列模拟用户操作的指令(例如:添加学生->输入数据->查询->删除->异常测试->退出)。

2.  自动化运行:

    -   使用 `/run` 指令执行编译命令:`javac StudentManagementSystem.java`。
    -   使用 `/run` 指令执行测试:`java StudentManagementSystem < test_script.txt > test_output.txt`。

3.  结果验证与迭代:

    -   请使用 `/read` 指令读取 `test_output.txt`。
    -   分析逻辑:如果输出结果中包含错误提示(如'添加失败'、'非法输入'等)且不符合预期,或程序崩溃,请自动分析代码逻辑中的错误(如 Scanner 缓冲区清理不当、逻辑判断错误等)。
    -   迭代修改:根据分析结果直接修改 `StudentManagementSystem.java` 并覆盖,重复上述测试过程,直到 `test_output.txt` 中的输出完全符合预期。

4.  最终交付:确认测试通过后,请通知我,并提供编译运行指令。"

(3)Claude Code CLI 完成结果

案例4:Go 基础------实现简单的HTTP接口

在微服务和后端开发领域,Go 语言以其极高的并发性能和极简的语法备受青睐。本例中我们将利用 Claude Code CLI 在 Ubuntu 终端中"结对编程",仅凭 Go 语言自带的 net/http 标准库,开发一个简单但五脏俱全的用户信息管理接口。

1. 需求分析

我们要实现的是一个轻量级的 HTTP 接口服务,通过切片(Slice)在内存中模拟数据库存储。具体需求如下:

  1. 核心接口

    • GET /users:获取所有用户信息。
    • GET /users/{id}:根据动态 ID 获取单个用户信息。
    • POST /users:添加新用户(接收 JSON 格式数据)。
  2. 数据规范 :请求与响应均采用 JSON 格式,成功返回 200,并附带规范的 code, msg, data 结构。

  3. 异常捕获:需妥善处理各种异常,例如请求参数解析失败返回 400,找不到用户返回 404,请求方法不支持返回 405。

  4. 工程规范:代码结构清晰,附带详细注释。

  5. 中间件支持:添加一个全局的日志中间件(Middleware),拦截并打印每个接口的请求方法、路径和时间。

2. 环境准备与操作流程

(1)初始化 Go 项目

bash 复制代码
mkdir -p ~/4-go_http_api
cd ~/4-go_http_api
go mod init go_http_api

(2)启动 Claude Code CLI 并输入提示词

markdown 复制代码
"请协助我开发一个 Go HTTP 服务 `main.go`,并实现自动化测试闭环。

核心需求:

1.  功能:使用 `net/http` 原生包实现 `GET /users`, `GET /users/{id}`, `POST /users` 接口,支持 JSON 响应,包含日志中间件。
2.  健壮性:妥善处理方法错误、参数无效、ID 不存在等异常。

自动化测试闭环要求:

1.  编写测试样例:请在完成 `main.go` 后,创建一个名为 `test_api.sh` 的 Shell 脚本,利用 `curl` 命令对上述 3 个接口进行完整性测试(包含正常场景和异常场景,如发送非法 ID、非法方法)。

2.  自动化运行:

    -   使用 `/run` 指令在后台启动服务:`go run main.go &`(并记录进程 ID 以便后续关闭)。
    -   使用 `/run` 指令执行测试脚本:`bash test_api.sh > test_results.txt`。

3.  结果验证与迭代:

    -   请使用 `/read` 指令读取 `test_results.txt`。
    -   分析逻辑**:检查测试结果是否符合预期(例如:POST 是否返回 200,错误请求是否返回 400/404/405)。
    -   **迭代修改**:如果测试脚本反馈失败,请自动分析原因并直接修改 `main.go` 源码,覆盖旧版本,然后重复测试步骤,直到所有测试用例通过。

4.  最终交付:确认测试完全通过后,请自动关闭后台运行的服务,并告知我:'测试成功,代码已生成并验证',同时提供 `go run main.go` 的启动指令。"

(3)Claude Code CLI 完成结果

相关推荐
codedx3 小时前
LangChain 和 LangGraph 构建的 Agent 项目模版
后端·langchain·agent
小七-七牛开发者3 小时前
周一上线 | SpaceX 收购 Cursor、支付宝进入 AI 时代、DeepSeek 完成 500 亿元融资
ai·agent·token·glm·智谱·claudecode·ai coding·周一上线
葫芦和十三3 小时前
图解 MongoDB 08|ESR 原则:复合索引的字段顺序怎么定
后端·mongodb·agent
葫芦和十三11 小时前
图解 MongoDB 07|索引类型:七种索引,七种访问形状
后端·mongodb·agent
艾逗笔16 小时前
从 OpenClaw 到 FastClaw:如何设计优秀的多 Agent 架构
agent
吴佳浩17 小时前
Hermes Agent 连环 400 真凶找到了:一个 call_id 让人炸毛
人工智能·llm·agent
DigitalOcean17 小时前
AI 推理采用本地 + Serverless 混合架构:让敏感数据不出户,算力成本更低
aigc·agent
宋哥转AI18 小时前
Agent记忆模块系列:03存储与检索链路实测验证
人工智能·agent