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 和决策。