最佳实践
学习目标:避开常见的坑,提高 AI 编程效率
预计时间:30-45 分钟
难度:⭐⭐⭐
提示词的写法
AI 编程的效果,80% 取决于你怎么描述需求。
好的提示词长什么样
差的:
写一个登录功能好的:
在 src/pages/Login.tsx 中实现登录页面:
技术栈:React 18 + TypeScript + Tailwind CSS
UI 框架:shadcn/ui
功能要求:
1. 邮箱和密码输入框,都要有验证
2. 邮箱格式验证,密码至少 8 位
3. 提交时显示 loading 状态
4. 调用 POST /api/auth/login 接口
5. 成功后跳转到 /dashboard,失败显示错误信息
参考现有代码风格:
[粘贴一段项目中的代码]关键要素
| 要素 | 说明 |
|---|---|
| 文件位置 | 告诉 AI 在哪个文件写 |
| 技术栈 | 用什么框架、什么版本 |
| 具体要求 | 功能点列清楚 |
| 约束条件 | 有什么限制 |
| 参考代码 | 让 AI 保持风格一致 |
上下文管理
AI 的记忆有限。对话太长,它会忘记前面说的。
技巧一:分阶段对话
做完一个功能,开一个新对话做下一个。每个对话专注一件事。
技巧二:主动提供上下文
我在开发一个书签管理器,技术栈是 React + Express + SQLite。
当前进度:后端 API 已完成,正在做前端。
现在要实现的功能:书签列表页面
相关文件:
- src/types/bookmark.ts(类型定义)
- src/api/bookmarks.ts(API 调用函数)
[粘贴这两个文件的内容]
请实现 src/pages/BookmarkList.tsx技巧三:用 @ 引用文件
Cursor 和 Copilot 都支持用 @ 引用文件:
@src/types/bookmark.ts @src/api/bookmarks.ts
基于这两个文件,实现书签列表组件代码审查习惯
AI 生成的代码不能直接用,要养成审查习惯。
必须检查的点
安全问题
- SQL 注入
- XSS 攻击
- 敏感信息泄露
边界情况
- 空值处理
- 数组越界
- 异常情况
性能问题
- 不必要的循环
- 重复的 API 调用
- 内存泄漏
让 AI 自查
请检查刚才生成的代码:
1. 有没有安全漏洞
2. 有没有处理边界情况
3. 有没有性能问题
如果有问题,请指出并修复。版本控制
用 Git 保护你的代码。
基本原则
- AI 改代码前,先 commit 当前状态
- 每完成一个功能,commit 一次
- 写清楚 commit message,标注是 AI 辅助的
bash
git add .
git commit -m "feat: 添加书签列表页面 (AI assisted)"出问题时
bash
# 查看 AI 改了什么
git diff
# 不满意就撤销
git checkout -- .
# 或者回到上一个 commit
git reset --hard HEAD~1效率技巧
快捷键要熟
| 操作 | Cursor | VS Code + Copilot |
|---|---|---|
| 接受补全 | Tab | Tab |
| 拒绝补全 | Esc | Esc |
| 打开聊天 | Cmd+L | Cmd+I |
| 内联编辑 | Cmd+K | Cmd+I |
| 下一个建议 | Alt+] | Alt+] |
善用代码片段
把常用的提示词保存成模板:
// 我的提示词模板
## 新组件
在 [文件路径] 创建 [组件名] 组件:
- 功能:[描述]
- Props:[列出]
- 样式:使用 Tailwind CSS
## 新 API
在 [文件路径] 实现 [接口名] 接口:
- 方法:[GET/POST/PUT/DELETE]
- 路径:[路径]
- 参数:[列出]
- 返回:[描述]常见错误
错误一:完全信任 AI
AI 会犯错,而且犯得很自信。
解决:关键逻辑自己写,或者仔细审查。
错误二:提示词太模糊
"帮我优化一下这个代码" —— AI 不知道你要优化什么。
解决:说清楚优化目标(性能?可读性?体积?)
错误三:一次改太多
让 AI 一次改整个项目,很容易出问题。
解决:小步快跑,一次改一个功能。
错误四:不看生成的代码
复制粘贴,跑起来就完事。
解决:至少扫一眼,理解 AI 在干什么。
本章小结
- 提示词要具体,包含文件位置、技术栈、具体要求
- 主动管理上下文,别指望 AI 记住所有东西
- 养成代码审查习惯,特别是安全相关的
- 用 Git 保护代码,方便回滚
- 小步快跑,不要一次改太多