用AI写代码,同样的需求,不同的人问,得到的代码质量可能相差10倍。

区别不在于AI,在于你提问的方式。下面10个技巧,每个我都附了坏例子和好例子的对比。


技巧1:给足上下文

这是最重要的一条。AI不知道你的项目结构、技术栈、代码风格,你不说它只能猜。

❌ 坏例子:

写一个登录功能

→ AI给你一个笼统的方案,可能用的技术栈和你项目完全不一样。

✅ 好例子:

我有一个Flask项目,数据库用PostgreSQL
已经在config.py里配好了数据库连接
请在app/auth.py里添加
1. 用户注册APIPOST /api/register
2. 用户登录APIPOST /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有多强,而是你会不会问。