学习中心/AI 编程工具/AI 辅助开发最佳实践
中级

AI 辅助开发最佳实践

工具选型、项目配置、AI Code Review、TDD with AI 等实战经验

Inkess35 min

学习笔记

AI 辅助开发最佳实践

工具选型决策树

你的开发场景是什么?
├── 日常编码(写功能、修 Bug)
│   ├── 喜欢 GUI → Cursor
│   ├── 喜欢 VS Code 生态 → GitHub Copilot
│   └── 喜欢命令行 → Claude Code
├── 大规模重构/迁移
│   └── Claude Code(自动化能力最强)
├── 代码审查
│   └── Claude Code + Cursor Chat
├── 学习新技术
│   └── Cursor Chat 或 Claude Code(可以问问题)
└── 团队协作
    └── GitHub Copilot Business(团队管理功能)

项目配置文件对比

不同工具使用不同的配置文件来理解你的项目:

工具 配置文件 位置
Claude Code CLAUDE.md 项目根目录
Cursor .cursorrules 项目根目录
Copilot copilot-instructions.md .github/

通用配置模板

无论用哪个工具,配置文件都应包含:

# 项目概述
一句话描述项目做什么。

# 技术栈
- 框架、语言、版本
- 数据库、ORM
- UI 库、样式方案

# 目录结构
关键目录和文件的说明。

# 开发命令
install / dev / build / test / lint

# 编码规范
- 命名约定
- 文件组织
- 错误处理方式
- 测试要求

# 关键设计决策
为什么选了 X 而不是 Y。

AI Code Review 工作流

自动化审��流程

代码完成 → AI 审查 → 修复问题 → 人工确认 → 提交

用 Claude Code 做 Code Review

# 审查最近的改动
claude "Review my recent changes for security issues, performance problems, and code quality. Check git diff for the changes."

# 审查特定文件
claude "Review src/auth/login.ts for OWASP Top 10 vulnerabilities"

审查清单

让 AI 按清单逐项检查:

请按以下清单审查这段代码:

Security:
- [ ] 输入验证
- [ ] SQL 注入防护
- [ ] XSS 防护
- [ ] 认证/授权检查

Performance:
- [ ] N+1 查询
- [ ] 不必要的重渲染
- [ ] 内存泄漏风险

Correctness:
- [ ] 边界条件处理
- [ ] 错误处理完整性
- [ ] 并发安全

TDD with AI

AI 非常适合 TDD(测试驱动开发)工作流:

流程

1. 你写测试(定义期望行为)
2. AI 生成实现(通过测试)
3. 你审查实现
4. AI 重构(保持测试通过)

示例

Step 1:你写测试

describe("calculateShipping", () => {
  it("should return 0 for orders over $100", () => {
    expect(calculateShipping(150)).toBe(0);
  });

  it("should return 5.99 for orders under $100", () => {
    expect(calculateShipping(50)).toBe(5.99);
  });

  it("should return 5.99 for orders exactly $100", () => {
    expect(calculateShipping(100)).toBe(5.99);
  });

  it("should throw for negative amounts", () => {
    expect(() => calculateShipping(-1)).toThrow();
  });
});

Step 2:让 AI 生成实现

这是我的测试文件。请生成 calculateShipping 函数的实现,确保所有测试通过。

Step 3:审查并迭代

AI 生成的代码可能不完美,但测试保证了正确性。你可以放心地让 AI 重构,只要测试通过就行。

多工具协作策略

推荐组合

个人开发者:

  • 主力:Cursor(日常编码)
  • 辅助:Claude Code(大任务、自动化)

团队开发:

  • 主力:GitHub Copilot Business(统一管理)
  • 辅助:Claude Code(CI/CD 集成)

工作流示例

1. 用 Cursor Chat 讨论方案
2. 用 Cursor Composer 生成初始代码
3. 用 Claude Code 做 Code Review
4. 用 Claude Code 生成测试
5. 用 Cursor 做最终调整

常见陷阱与避坑

1. 盲目信任 AI 输出

AI 生成的代码可能:

  • 有安全漏洞(SQL 注入、XSS)
  • 使用过时的 API
  • 引入不必要的依赖
  • 逻辑看起来对但有边界 Bug

解决:始终 review AI 生成的代码,特别是安全相关的部分。

2. 上下文不足

AI 不了解你的项目全貌,可能生成与现有代码风格不一致的代码。

解决:维护好项目配置文件(CLAUDE.md / .cursorrules),提供足够的上下文。

3. 过度依赖 AI

如果你不理解 AI 生成的代码,就不应该使用它。

解决:把 AI 当作 pair programmer,不是代码生成器。理解每一行代码。

4. 忽略测试

AI 让写代码变快了,但不代表可以跳过测试。

解决:让 AI 帮你写测试,而不是跳过测试。

5. 提示词太模糊

# ��
帮我写一个用户系统

# 好
用 TypeScript 写一个用户注册函数:
- 接收 email 和 password
- 验证 email 格式
- 密码至少 8 位,含大小写和数字
- 用 bcrypt 哈希密码
- 存入 PostgreSQL(用 Prisma)
- 返回用户对象(不含密码)

实战案例:用 AI 从零构建功能

以"添加用户邀请功能"为例:

Step 1: 需求分析(Chat)
"我需要添加用户邀请功能。每个用户有唯一邀请码,
被邀请人注册后,邀请人获得奖励。帮我分析需要哪些改动。"

Step 2: 数据库设计(Chat)
"基于分析,帮我设计 Prisma schema 的改动。"

Step 3: API 实现(Composer/Claude Code)
"按照这个 schema,实现邀请相关的 API:
- GET /api/referral/code — 获取邀请码
- POST /api/referral/apply — 使用邀请码
- GET /api/referral/stats — 邀请统计"

Step 4: 前端页面(Composer)
"基于 API,创建邀请页面,包含邀请码展示、复制按钮、邀请统计。"

Step 5: 测试(Claude Code)
"为邀请功能生成单元测试和集成测试。"

Step 6: Code Review(Claude Code)
"审查邀请功能的所有改动,检查安全性和边界条件。"

整个过程 AI 辅助完成,但每一步你都在 review 和决策。