Skip to content

最佳实践

学习目标:避开常见的坑,提高 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 生成的代码不能直接用,要养成审查习惯。

必须检查的点

  1. 安全问题

    • SQL 注入
    • XSS 攻击
    • 敏感信息泄露
  2. 边界情况

    • 空值处理
    • 数组越界
    • 异常情况
  3. 性能问题

    • 不必要的循环
    • 重复的 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

效率技巧

快捷键要熟

操作CursorVS Code + Copilot
接受补全TabTab
拒绝补全EscEsc
打开聊天Cmd+LCmd+I
内联编辑Cmd+KCmd+I
下一个建议Alt+]Alt+]

善用代码片段

把常用的提示词保存成模板:

// 我的提示词模板

## 新组件
在 [文件路径] 创建 [组件名] 组件:
- 功能:[描述]
- Props:[列出]
- 样式:使用 Tailwind CSS

## 新 API
在 [文件路径] 实现 [接口名] 接口:
- 方法:[GET/POST/PUT/DELETE]
- 路径:[路径]
- 参数:[列出]
- 返回:[描述]

常见错误

错误一:完全信任 AI

AI 会犯错,而且犯得很自信。

解决:关键逻辑自己写,或者仔细审查。

错误二:提示词太模糊

"帮我优化一下这个代码" —— AI 不知道你要优化什么。

解决:说清楚优化目标(性能?可读性?体积?)

错误三:一次改太多

让 AI 一次改整个项目,很容易出问题。

解决:小步快跑,一次改一个功能。

错误四:不看生成的代码

复制粘贴,跑起来就完事。

解决:至少扫一眼,理解 AI 在干什么。


本章小结

  • 提示词要具体,包含文件位置、技术栈、具体要求
  • 主动管理上下文,别指望 AI 记住所有东西
  • 养成代码审查习惯,特别是安全相关的
  • 用 Git 保护代码,方便回滚
  • 小步快跑,不要一次改太多

← 返回:实战项目 | 继续学习:问题排查 →

最近更新

基于 Apache 2.0 许可发布