Claude Code: Claude Code 基础用法

最后更新:2026-08-31

基础用法是 Claude Code 的日常武器库——从写代码到修 Bug,从重构到写测试,覆盖开发者的核心工作场景。

💡 提示:Claude Code 最强的不是单次回答,而是"理解项目 → 修改代码 → 验证结果 → 迭代修复"的闭环能力。

📋 前置知识:第七章 交互模式与操作说明

1. 你将学到


2. 代码生成

(1) 从零创建文件

TEXT 📖 仅展示
> 创建 src/services/email.ts,实现邮件发送服务:
> - 支持 HTML 和纯文本格式
> - 使用模板引擎渲染邮件内容
> - 添加重试机制(最多3次)
> - 写单元测试(mock SMTP)

Claude Code:
  → Creating src/services/email.ts
  → Creating src/services/__tests__/email.test.ts
  → Installing dependencies: nodemailer, handlebars
  → Running: npm test -- email.test.ts
  ✅ 5 tests passed

(2) 基于现有代码扩展

TEXT 📖 仅展示
> 在 UserService 中添加密码重置功能

Claude Code:
  → Reading src/services/user.ts
  → Reading src/models/user.ts
  → Reading src/services/email.ts (已存在的邮件服务)
  → Modifying src/services/user.ts (adding resetPassword)
  → Modifying src/routes/user.ts (adding POST /reset-password)
  → Creating tests for password reset
  ✅ All tests passed

▶ 示例 1: 生成 CRUD 模块

TEXT 📖 仅展示
> 创建完整的 Product CRUD 模块:
> 1. Prisma 模型定义
> 2. Repository 层
> 3. Service 层
> 4. Controller 层
> 5. 路由定义
> 6. 完整测试

Claude Code:
  → Reading prisma/schema.prisma (existing schema)
  → Adding Product model to schema
  → Creating src/repositories/product.repository.ts
  → Creating src/services/product.service.ts
  → Creating src/controllers/product.controller.ts
  → Creating src/routes/product.routes.ts
  → Creating tests/product.test.ts
  → Running: npm test
  ✅ 12 tests passed (CRUD: create, read, update, delete, list, search)

3. Bug 修复

(1) 指定 Bug 修复

TEXT 📖 仅展示
> 修复 src/utils/date.ts 中 relativeTime 函数在跨年时的计算错误

Claude Code:
  → Reading src/utils/date.ts
  → Reading tests/date.test.ts
  → Found bug: relativeTime uses daysOnly comparison
  → Fixing: adding year boundary check
  → Running: npm test -- date.test.ts
  ✅ All tests passed (including new edge case)

(2) 基于错误信息修复

TEXT 📖 仅展示
> 运行测试并修复所有失败用例

Claude Code:
  → Running: npm test
  ❌ 3 tests failed:
    - auth.test.ts: token expiry check
    - user.test.ts: email validation
    - order.test.ts: date format

  → Reading failed test files...
  → Fixing auth.test.ts: adjusting time comparison logic
  → Fixing user.test.ts: updating regex pattern
  → Fixing order.test.ts: using ISO date format

  → Running: npm test
  ✅ All 47 tests passed

▶ 示例 2: 运行时错误修复

TEXT 📖 仅展示
> 应用启动报错:TypeError: Cannot read property 'id' of undefined at UserController.getProfile

Claude Code:
  → Reading src/controllers/user.controller.ts
  → Found: getProfile doesn't check if req.user exists
  → Adding null check with proper error response
  → Running: npm run build ✓
  → Running: npm test -- user.controller.test.ts
  ✅ All tests passed

4. 代码重构

(1) 函数级重构

TEXT 📖 仅展示
> 重构 src/utils/format.ts 中的 formatCurrency 函数,使用 Intl.NumberFormat

Claude Code:
  → Reading src/utils/format.ts
  → Replacing manual formatting with Intl.NumberFormat
  → Adding locale support (default: zh-CN)
  → Running: npm test -- format.test.ts
  ✅ All tests passed

(2) 模块级重构

TEXT 📖 仅展示
> 将 src/helpers/ 目录下的所有工具函数按功能重组到 src/utils/ 下:
> - 日期相关 → utils/date.ts
> - 字符串相关 → utils/string.ts
> - 数字相关 → utils/number.ts
> 更新所有 import 路径

Claude Code:
  → Scanning src/helpers/ (15 files)
  → Categorizing functions by type
  → Creating new files in src/utils/
  → Moving functions with proper exports
  → Updating 32 import statements across the project
  → Deleting src/helpers/
  → Running: npm test
  ✅ All 89 tests passed

5. 测试编写

▶ 示例 3: 批量补充测试

TEXT 📖 仅展示
> 为 src/services/ 下所有没有测试的 service 写测试,覆盖率目标 80%

Claude Code:
  → Scanning src/services/ (8 files)
  → Checking test coverage...

  Missing tests:
  - email.service.ts (0% coverage)
  - payment.service.ts (0% coverage)
  - search.service.ts (12% coverage)

  → Writing tests for email.service.ts (5 test cases)
  → Writing tests for payment.service.ts (8 test cases)
  → Writing tests for search.service.ts (6 test cases)

  → Running: npm test
  ✅ All new tests passed

  Coverage:
  - email.service.ts: 85%
  - payment.service.ts: 82%
  - search.service.ts: 88%
  Average: 85% ✓

6. 代码审查与文档

(1) 代码审查

TEXT 📖 仅展示
> 审查 src/auth/jwt.ts 的安全性

Claude Code:
  ⚠️ Found 3 issues:
  1. Hardcoded secret key (line 12) → Use env variable
  2. No token expiry validation (line 34) → Add expiry check
  3. Algorithm not specified (line 8) → Force RS256

  Suggested fixes:
  → Line 12: process.env.JWT_SECRET
  → Line 34: if (decoded.exp < Date.now()/1000) throw new Error()
  → Line 8: algorithm: 'RS256'

(2) 文档生成

TEXT 📖 仅展示
> 为 src/api/ 下所有路由生成 API 文档

Claude Code:
  → Reading all route files (12 files)
  → Generating API documentation...
  → Creating docs/api.md with:
    - Endpoint listing table
    - Request/Response examples
    - Authentication requirements
    - Error codes reference

7. 综合示例:全流程开发

TEXT 📖 仅展示
# Alice 用 Claude Code 完成用户权限功能

> 实现用户权限系统:
> 1. 定义 Role 和 Permission 模型
> 2. 实现 RBAC 中间件
> 3. 添加权限检查装饰器
> 4. 写完整的集成测试
> 5. 生成 API 文档

Claude Code 执行过程:
  → Reading existing auth module...
  → Creating models/role.model.ts
  → Creating models/permission.model.ts
  → Creating middleware/rbac.ts
  → Creating decorators/require-permission.ts
  → Modifying routes to add permission checks
  → Writing integration tests (15 test cases)
  → Running: npm test → 15/15 passed ✓
  → Generating docs/permissions.md

Total: 8 files created, 4 files modified, 15 tests passing

❓ 常见问题

Q Claude Code 生成的代码质量如何?
A 对于常见模式和标准实现,质量很高。复杂业务逻辑和特殊场景仍需人工审查。建议始终 review 生成的代码。
Q 能一次修复多个 Bug 吗?
A 可以。描述清楚每个 Bug,Claude Code 会逐个修复并验证。但建议一次聚焦一个 Bug,减少出错概率。
Q 重构会破坏现有功能吗?
A 如果项目有完善的测试,Claude Code 会确保测试通过。没有测试时重构风险较高,建议先补测试再重构。
Q 测试写得好不好?
A 单元测试质量不错,特别是 happy path 和常见 edge case。边界情况和复杂 mock 场景可能需要手动补充。
Q 代码审查能替代人工审查吗?
A 不能完全替代。Claude Code 擅长发现常见安全问题和风格问题,但业务逻辑的正确性仍需人工判断。
Q 如何让 Claude Code 遵循项目代码风格?
A 在 CLAUDE.md 中写明编码规范,Claude Code 会遵循。也可以让它先读取 ESLint/Prettier 配置。

📖 小节


📝 作业

  1. 基础题(难度⭐):用 Claude Code 为一个函数生成单元测试,检查测试质量。
  2. 进阶题(难度⭐⭐):故意在项目中引入一个 Bug,用 Claude Code 修复,观察它的定位和修复过程。
  3. 挑战题(难度⭐⭐⭐):让 Claude Code 完成一个完整的功能模块(模型+服务+路由+测试+文档),全程 review 生成的代码。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏