用AI写代码,同样的需求,不同的人问,得到的代码质量可能相差10倍。
区别不在于AI,在于你提问的方式。下面10个技巧,每个我都附了坏例子和好例子的对比。
技巧1:给足上下文
这是最重要的一条。AI不知道你的项目结构、技术栈、代码风格,你不说它只能猜。
❌ 坏例子:
写一个登录功能
→ AI给你一个笼统的方案,可能用的技术栈和你项目完全不一样。
✅ 好例子:
我有一个Flask项目,数据库用PostgreSQL,
已经在config.py里配好了数据库连接。
请在app/auth.py里添加:
1. 用户注册API(POST /api/register)
2. 用户登录API(POST /api/login)
3. 密码用bcrypt加密
4. 返回JWT token(过期时间24小时)
技巧2:分步骤,别一次性倒给AI
❌ 坏例子:
帮我写一个完整的电商系统
→ AI会生成一堆无用的脚手架代码,一半用不上。
✅ 好例子:
第1步:在models.py中添加Product模型
(name, description, price, stock四个字段)
第2步:添加CRUD API(我告诉你下一步做什么)
AI擅长做小任务,不擅长一次完成大项目。拆得越细,质量越高。
技巧3:指定语言+框架+风格
❌ 坏例子:
写一个模态框
✅ 好例子:
用 React + TypeScript + Tailwind CSS 写一个模态框组件。
要求:
- 点击遮罩层关闭
- 按ESC键关闭
- 支持自定义宽高
- 有入场动画
- 已安装@headlessui/react
技巧4:让AI写出测试,再写代码
这是最能提升代码质量的技巧。 先让AI写测试,它会想清楚要满足什么条件,再写的代码会规范很多。
先帮我写这个函数的测试用例(pytest),
覆盖正常输入、边界值、异常情况。
确认测试覆盖全面后,再帮我实现这个函数。
函数功能:[描述]
技巧5:看不懂的代码,让AI逐行解释
遇到复杂代码时,不要自己硬啃。
请逐行解释以下代码在做什么。
重点说明:第8行的reduce函数为什么这么用,
以及第15行的async/await在这里的必要性。
[粘贴代码]
技巧6:要求多种方案 + 对比
❌ 坏例子:
帮我把这个数组去重
✅ 好例子:
给3种数组去重的方法:
1. 最快执行速度的
2. 代码最简洁的
3. 最易维护的
对比每种方法的时间复杂度和适用场景。
技巧7:让AI审查你的代码
自己写的代码很难看出问题,AI可以当你的Code Reviewer。
假装你是一个有10年后端经验的高级工程师。
请审查这段代码,指出:
1. 安全性问题(最重要)
2. 性能问题
3. 可维护性问题
4. 命名是否合理
按严重程度排序。
[粘贴代码]
技巧8:角色设定(真的有用)
作为一个有10年Python经验的资深开发者,
请帮我设计这个功能。
考虑:性能、可维护性、扩展性。
为什么有用: 角色设定会触发AI使用更专业、更谨慎的表达方式。
技巧9:明确要求错误处理
AI默认生成的代码错误处理非常薄弱。
❌ 坏例子:
写一个文件上传函数
✅ 好例子:
写一个文件上传函数,请包含:
1. 文件类型校验(只允许jpg/png/pdf)
2. 文件大小限制(最大10MB)
3. 文件名安全处理(防路径遍历攻击)
4. 上传失败时返回友好的错误信息
5. 日志记录
技巧10:不满意就迭代,别接受第一次答案
AI的第一次答案通常是60分。 继续追问才是拿到90分代码的关键。
第1轮:写一个数据导出功能
→ AI给了CSV导出
第2轮:改成支持CSV和Excel两种格式
→ AI加了Excel支持
第3轮:Excel导出要带格式(表头加粗、列宽自适应)
→ AI优化了格式
第一次不满意?继续问。第三次一定比第一次好。
总结
| 技巧 | 核心 | 一句话记住 |
|---|---|---|
| 1 | 给足上下文 | 不说的AI只能猜 |
| 2 | 拆解任务 | 一次一件事 |
| 3 | 指定技术栈 | 语言+框架+风格 |
| 4 | 先写测试 | 测试写完代码自然好了 |
| 5 | 让AI解释 | 看不懂就问 |
| 6 | 要求方案对比 | 多种方案选最优 |
| 7 | AI Code Review | 别人看不出自己的bug |
| 8 | 角色设定 | 资深工程师模式 |
| 9 | 错误处理 | AI不管安全你要管 |
| 10 | 迭代追问 | 第一次只有60分 |
用好AI编程的核心不是AI有多强,而是你会不会问。
💬 评论
0