🔧 阶段五:Claude Code CLI 中级工程实战

5 大真实开发场景 | 全程命令行操作 | 可直接用于生产开发

📑 本章目录
  1. 场景一:命令行快速新建项目、初始化、生成模板代码
  2. 场景二:批量代码重构、规范统一、语法升级
  3. 场景三:报错日志分析、线上问题定位、BUG 批量修复
  4. 场景四:自动生成单元测试、接口文档、README
  5. 场景五:文件批量处理、文本解析、脚本编写
  6. 课后练习

场景一:命令行快速新建项目 → 初始化 → 生成模板代码

目标

完全通过 Claude Code CLI 命令行,5 分钟内从零创建一个结构完整的 Node.js/Express 项目。

Step 1:创建项目骨架

# 创建项目目录并进入
mkdir ~/express-api-demo && cd ~/express-api-demo

# 初始化 git
git init

# 启动 Claude
claude

Step 2:让 Claude 初始化项目

# 在 Claude 交互界面中输入(一次性给出完整需求):
"初始化一个 Node.js Express API 项目:
1. npm init -y 初始化
2. 安装 express、cors、morgan、dotenv 依赖
3. 安装 nodemon 作为 dev 依赖
4. 创建以下目录结构:
   src/
     routes/
     controllers/
     models/
     middleware/
     utils/
   tests/
5. 创建 src/app.js 主入口,包含基础 Express 配置
6. 在 package.json 中添加 dev 和 start 脚本
7. 创建 .env.example 文件
8. 创建 .gitignore 忽略 node_modules 和 .env"

Step 3:生成模板代码

# 继续在 Claude 中输入:
"生成以下文件:

1. src/app.js — Express 主入口:
   - 加载 dotenv
   - 使用 cors、morgan、express.json()
   - 引入 routes
   - 错误处理中间件
   - 监听 PORT 环境变量

2. src/routes/users.js — 用户路由:
   - GET /users — 获取用户列表
   - GET /users/:id — 获取单个用户
   - POST /users — 创建用户

3. src/controllers/usersController.js — 用户控制器:
   - 实现上面三个路由的处理函数
   - 使用 try-catch 错误处理
   - 返回标准 JSON 格式 {success, data, error}

4. src/middleware/errorHandler.js — 全局错误处理中间件"
💡 技巧:一次性给出完整需求比多次询问效率高得多。Claude Code CLI 擅长处理这种"多文件同时生成"的任务。

Step 4:补全注释和类型

# 让 Claude 为代码添加 JSDoc 注释
"为 src/ 下所有 .js 文件添加 JSDoc 注释,包括函数参数类型和返回值类型"

场景二:批量代码重构、规范统一、语法升级

目标

用 Claude Code CLI 对整个项目执行批量重构,统一代码风格,升级旧语法。

重构 1:var → const/let 批量升级

# 启动 Claude 到项目目录
cd ~/my-project && claude

# 在 Claude 交互界面中输入:
"扫描 src/ 下所有 .js 文件的 var 声明:
- 不会被重新赋值的变量 → 改为 const
- 会被重新赋值的变量 → 改为 let
- 每改完一个文件后检查语法是否正确"

重构 2:回调 → async/await 升级

# 让 Claude 识别并升级回调模式
"找出 src/ 下所有使用回调函数(callback pattern)的代码,
将它们重构为 async/await 模式。
保持原有的错误处理逻辑,确保行为不变。
逐个文件重构,每完成一个就验证逻辑正确性。"

重构 3:统一错误处理模式

# 统一错误处理
"分析 src/ 下所有文件的错误处理方式,
把它们统一为项目中 src/middleware/errorHandler.js 定义的模式:
- 控制器中 throw new AppError(statusCode, message)
- 由全局错误处理中间件统一捕获
- 移除所有 try-catch 中直接 res.status().json() 的写法"

重构 4:冗余代码清理

# 找出并清理冗余
"分析整个项目,找出:
1. 未使用的变量和导入
2. 重复的代码块(可以提取为工具函数)
3. 注释掉的旧代码
4. console.log 调试语句

列出所有发现,逐项让我确认是否清理。"
⚠️ 重构安全准则

场景三:报错日志分析、线上问题定位、BUG 批量修复

目标

利用 Claude Code CLI 的管道模式和日志分析能力,快速定位和修复问题。

实战 1:应用日志分析

# 假设你的应用日志在 app.log
# 直接用管道传给 Claude 分析

cat /var/log/myapp/app.log | claude -p \
"分析这些应用日志,提取:
1. 所有 ERROR 级别的日志,按出现频率排序
2. 找出导致同一个错误反复出现的根因
3. 对每个错误给出修复建议,格式:
   - 错误:<摘要>
   - 根因:<分析>
   - 修复:<具体修复方案>"

实战 2:Server 500 线上排查

# 结合多条命令做综合分析
# 提取最近的错误上下文

tail -n 1000 /var/log/myapp/app.log | \
  grep -A 5 "ERROR\|FATAL\|500\|503" | \
  claude -p \
"分析这些服务端错误日志。这是一个 Express.js 应用。
对每种错误:
1. 判断严重级别(critical/high/medium/low)
2. 指出可能涉及的代码文件
3. 给出应急修复方案
4. 给出长期优化建议"

实战 3:BUG 批量修复

# 如果你的项目有 bug 列表文件 bugs.txt
cd ~/my-project && claude

# 在交互界面中:
"读取 bugs.txt 中的 bug 列表,逐个分析并修复。

对每个 bug 的修复流程:
1. 读取相关源文件,理解代码逻辑
2. 定位 bug 根因
3. 修复代码
4. 如果项目有测试,运行相关测试验证
5. 报告修复结果

bug 列表在 bugs.txt,每行一个 bug 描述。
从第一个开始,逐个处理。"

实战 4:代码健壮性加固

# 让 Claude 做防御性编程审查
"审查 src/ 下所有 JavaScript 文件,找出健壮性问题:
1. 缺少输入校验的地方(用户输入、API 参数)
2. 可能为 null/undefined 的变量没有做保护
3. JSON.parse 没有 try-catch 包裹
4. 文件操作没有错误处理
5. 数据库查询没有处理连接失败

为每个问题生成修复代码,按风险级别排序。"

场景四:自动生成单元测试、接口文档、README

目标

利用 Claude Code CLI 自动生成项目所需的各种文档和测试。

生成 1:单元测试(Jest)

cd ~/my-project && claude

# 为单个模块生成测试
"为 src/utils/formatDate.js 生成完整的 Jest 测试文件,
保存为 tests/utils/formatDate.test.js。
要求:
- 覆盖正常输入、边界值、异常输入
- 使用 describe/it 结构
- 包含 beforeEach/afterEach 清理
- 测试用例命名清晰"

生成 2:批量生成全部测试

# 为整个项目生成测试
"分析 src/ 目录结构,为所有可测试的模块生成 Jest 测试文件:
1. 先列出所有需要测试的模块
2. 逐个生成测试文件到 tests/ 对应目录
3. 确保测试覆盖核心逻辑和边界情况
4. 生成完成后运行 npm test 验证

跳过以下文件:
- 第三方库的包装文件
- 纯配置文件
- 已存在测试文件的模块"

生成 3:API 接口文档

# 生成 OpenAPI/Swagger 文档
"分析 src/routes/ 下所有路由文件,
生成 OpenAPI 3.0 规范的 API 文档(JSON 格式),
保存为 docs/api-spec.json。
包含每个接口的:
- method、path、summary
- request body schema
- response schema
- 可能的错误码"

生成 4:项目 README

# 自动生成专业 README
"分析整个项目,生成 README.md 包含:
1. 项目名称和一句话描述
2. 技术栈
3. 前置依赖
4. 安装和运行步骤
5. 项目目录结构说明
6. 可用脚本说明
7. API 概览(如果有)
8. 环境变量说明(读取 .env.example)
9. 贡献指南
使用 Markdown 格式,风格专业简洁。"

生成 5:部署说明

# 生成部署文档
"生成 DEPLOY.md 部署说明文档,包含:
1. 服务器要求(Node.js 版本、内存、磁盘)
2. 环境变量配置
3. 使用 PM2 部署的完整步骤
4. Nginx 反向代理配置示例
5. SSL 证书配置
6. 健康检查端点说明
7. 日志查看方法
8. 回滚步骤"

场景五:文件批量处理、文本解析、脚本编写

目标

使用 Claude Code CLI 的脚本化和管道能力,完成日常运维和数据处理任务。

任务 1:批量文件重命名

cd ~/my-project && claude

# 让 Claude 生成批量重命名脚本
"生成一个 bash 脚本 rename-files.sh:
将 data/ 目录下所有 .txt 文件重命名为 .md,
但要保留原始 .txt 文件的备份(.txt.bak)。
脚本需要:
- 先检查目录是否存在
- 显示将要修改的文件列表
- 执行前询问确认
- 输出操作日志"

任务 2:JSON/CSV 数据解析

# 管道模式解析数据
cat large-data.json | claude -p \
"分析这个 JSON 数组,提取以下统计信息:
1. 总记录数
2. 按 status 字段分组的数量
3. created_at 的日期范围
4. 找出重复的记录(如果有 email 字段,检查 email 重复)
5. 输出为结构化报告"

任务 3:日志格式化与提取

# 从非结构化日志中提取信息
cat /var/log/syslog | head -200 | claude -p \
"从这些系统日志中提取:
1. 所有认证相关的事件(login, sudo, ssh)
2. 时间线排序
3. 标记可疑行为(多次失败登录、异常时间登录)
4. 输出为 JSON 数组"

任务 4:配置迁移

# 让 Claude 处理配置格式转换
cd ~/my-project && claude

"读取旧的 config.ini,将它转换为 config.json 格式。
保留所有配置项,合理推断数据类型(数字保持数字,布尔保持布尔)。
如果原有注释中有重要说明,保留到 JSON 的 _comment 字段中。"

任务 5:自动化脚本生成

# 生成一键部署脚本
"分析这个项目的结构和 package.json,
生成一个 deploy.sh 一键部署脚本:
1. git pull 拉取最新代码
2. npm ci 安装依赖
3. npm run build 构建(如果有)
4. npm test 运行测试
5. pm2 restart 重启服务
6. 任何步骤失败时停止并报错
7. 输出带颜色的进度信息
8. 记录部署日志到 deploy.log"

课后练习

  1. 从零建项目:用 Claude CLI 从零创建一个 Express/React/Vue 项目,完全通过命令行完成
  2. 重构老项目:找一个有 50+ 文件的旧项目,用 Claude 批量升级语法规范
  3. 日志分析:导出你服务器上的实际日志,用管道模式让 Claude 分析
  4. 测试覆盖:为一个覆盖率低于 50% 的项目,用 Claude 补充测试直到 80%+
  5. 文档生成:为一个没有文档的项目,用 Claude 生成完整的 README + API 文档
  6. 脚本自动化:用 Claude 生成 3 个不同的运维脚本,实测运行
  7. 配置迁移:将一个使用旧配置格式的项目迁移到新格式