我用 AI 编程半年,这 5 个 Prompt 技巧让我效率翻倍

作者:吴琼琼日期:2026/7/25

我用 AI 编程半年,这 5 个 Prompt 技巧让我效率翻倍

不是 AI 不行,是你的提示词太随便了。


半年前,我第一次用 AI 辅助编程的时候,体验非常糟糕。

那时候我让 AI 帮我写一个「用户管理系统」,它给我生成了 800 行代码,里面掺杂了 PHP、Python 和莫名其妙的伪代码,接口命名毫无规律,错误处理完全没有。我当时心想:这玩意儿也就这样吧。

转折点发生在一个深夜。我加班改一个数据迁移脚本,困得不行,决定再给 AI 一次机会。但这次,我没有像平时那样随口说一句「帮我写个脚本」,而是花了 5 分钟,认真写了一段 Prompt。

结果 AI 直接给出了一个能跑的脚本,还自动处理了我没考虑到的边界情况。那个脚本我稍微改了两行就直接上线了。

从那以后,我开始认真研究 Prompt Engineering,发现这玩意儿跟学编程语言一样,有它自己的「语法」和「最佳实践」。

今天把这半年踩过的坑、总结的技巧,一次性分享出来。


技巧一:给 AI 一个「角色剧本」

很多人写 Prompt 上来就是「帮我写一个排序算法」,这跟找一个路人说「帮我修一下车」差不多——对方根本不知道你是要换轮胎还是换发动机。

最基础的优化:给 AI 分配一个角色。

以写一个 Python 数据处理脚本为例,我的 Prompt 是这样写的:

1你是一位有 10 年经验的 Python 后端工程师,擅长数据处理和性能优化。
2你的代码风格:简洁、类型安全、有完善的错误处理。
3请帮我完成以下任务。
4

然后才开始说具体需求。这个简单的角色设定,让 AI 的代码质量提升了一个档次。它不会再写 try...except: pass 这种敷衍的错误处理,不会用 list 处理百万级数据,也不会起 abtemp 这种变量名。

为什么有效?

大语言模型本质上是在做「下一个 token 预测」。当你给它一个角色设定时,你实际上是在限定它的输出空间——「有 10 年经验的 Python 工程师」这个角色,会激活它训练数据中更高质量、更专业的代码模式。

我的经验是:角色设定越具体,输出质量越高。与其说「你是一个程序员」,不如说「你是一个专注后端开发的 Python 工程师,熟悉 Django 和 FastAPI,代码风格偏好函数式编程」。


技巧二:用「约束」代替「要求」

这是我踩过最大的坑。

刚开始用 AI 的时候,我总是说「代码要简洁」、「性能要好」、「要安全」。这些词对 AI 来说太模糊了——什么叫「简洁」?10 行算简洁还是 100 行算简洁?

后来我学会了一个技巧:把抽象的要求转化为具体的约束。

对比一下:

差的 Prompt:

1帮我写一个用户登录接口,要安全、性能好
2

好的 Prompt:

1帮我写一个用户登录接口,要求:
21. 使用 bcrypt 加密密码,工作因子  12
32. JWT token 过期时间设置为 2 小时,支持 refresh token
43. 连续 5 次登录失败后锁定账号 15 分钟
54. 登录日志记录到独立的 log 表,包含 IP、User-Agent、时间戳
65. 密码长度 8-64 位,必须包含大小写字母和数字
76. 使用 Redis 做登录状态缓存,key 格式为 "session:{user_id}"
87. 接口响应时间需要控制在 200ms 以内,数据库查询不超过 3 
9

第二个 Prompt 生成的代码,我可以直接拿去 code review。因为每一个要求都是可验证的,AI 没法糊弄。

核心原则:能量化的就量化,不能量化的就举例。

比如「代码要清晰」这种要求,可以改成「函数命名遵循 PEP 8,每个函数不超过 30 行,关键逻辑要有注释」。


技巧三:分而治之,别让 AI 一口吃成胖子

有一次我让 AI「帮我写一个完整的电商系统」,结果它给我生成了一个 main.py 文件,里面混杂了路由、数据库操作、业务逻辑、模板渲染……整整 2000 行,完全没法维护。

从那以后,我学会了「拆」。

我的做法是:把大任务拆成小任务,一个一个喂给 AI,每个任务之间保持上下文连贯。

具体来说,我是这样拆一个「用户模块」的:

第一步:先让 AI 设计数据结构

1请设计一个用户模块的数据模型,包括:
2- 用户表(users)
3- 用户资料表(user_profiles)
4- 登录日志表(login_logs)
5请用 SQLAlchemy ORM 定义,给出字段类型、索引、外键关系。
6

第二步:确认模型后,再写 CRUD

1基于刚才定义的数据模型,帮我写以下接口:
21. 用户注册(POST /api/users/register)
32. 用户登录(POST /api/users/login)
43. 获取用户信息(GET /api/users/{user_id}
5使用 FastAPI 框架,Pydantic 做请求验证。
6

第三步:加上认证和权限

1在已有的接口基础上,添加 JWT 认证中间件。
2要求:
3- 除了 /register  /login,其他接口都需要验证 token
4- 在请求上下文中注入当前用户信息
5- token 过期返回 401,权限不足返回 403
6

这样分步来,每一步 AI 的输出都是可控的,你可以随时 review、调整,不会出现一个 2000 行的怪兽文件。

关键技巧:保持上下文。 每一步都引用上一步的结果,让 AI 知道「我们在延续之前的工作」。比如「基于刚才定义的数据模型」这个短语,就是给 AI 一个上下文锚点。


技巧四:给 AI 看「你想要的」和「你不想要的」

这是我从一个开源项目里学到的技巧——在 Prompt 里同时提供正面示例和反面示例。

比如,让 AI 写一个错误处理模块:

1请帮我写一个全局异常处理中间件。
2
3 你想要的风格(参考):
4```python
5class AppException(Exception):
6    def __init__(self, code: int, message: str, detail: dict = None):
7        self.code = code
8        self.message = message
9        self.detail = detail or {}
10
11@app.exception_handler(AppException)
12async def app_exception_handler(request, exc):
13    return JSONResponse(
14        status_code=exc.code,
15        content={
16            "code": exc.code,
17            "message": exc.message,
18            "detail": exc.detail
19        }
20    )
21

❌ 你不想要的风格(请避免):

1try:
2    # 业务逻辑
3    pass
4except:
5    pass  # 吞掉异常,不记录日志
6
1
2有了正反示例后,AI 的输出质量明显更稳定。它不会写出「吞掉异常」这种反模式,也不会使用 [`print()`](https://xplanc.org/primers/document/zh/02.Python/EX.%E5%86%85%E5%BB%BA%E5%87%BD%E6%95%B0/EX.print.md) 代替日志。
3
4这个技巧在处理代码风格一致性的时候特别有用。比如你想让 AI 写的代码和你已有的代码风格一致,直接把现有代码片段贴进去作为示例。
5
6---
7
8## 技巧五:迭代式对话,把 AI 当结对编程伙伴
9
10很多人把 AI 当「一次性代码生成器」——输入需求,拿到代码,复制粘贴,完事。
11
12但真正高效的使用方式是 **「迭代式对话」**。把它当成一个坐在你旁边的结对编程伙伴。
13
14我现在的 workflow 是这样的:
15
16

第一轮:我描述需求,AI 给出方案 第二轮:我 review 方案,指出问题,AI 改进 第三轮:我确认方案,AI 生成代码 第四轮:我 review 代码,指出 bug 或优化点,AI 修复 第五轮:我让 AI 写单元测试 第六轮:我让 AI 写文档和使用说明

1
2一个真实的例子。上周我需要写一个数据导出功能,支持 CSV  Excel 两种格式。
3
4**第一轮:**
5> 我需要一个数据导出功能,支持 CSV  Excel。数据量可能达到 10 万行。请先给出设计方案,不要直接写代码。
6
7AI 给出了方案:使用策略模式,流式写入避免内存溢出,Excel  openpyxl  write_only 模式。
8
9**第二轮:**
10> 方案不错,但考虑一下:如果导出过程中出错怎么办?需要支持断点续传吗?另外 Excel  10 万行会不会有性能问题?
11
12AI 补充了错误处理和分批写入方案。
13
14**第三轮:**
15> 好的,按这个方案写代码吧。注意:导出 Excel 时每 5000 行写一次,避免内存溢出。
16
17AI 生成了完整的代码,包括接口层、服务层、导出策略。
18
19**第四轮:**
20> 代码里有个问题:`csv_writer` 没有处理 BOM 头,在 Excel 里打开中文会乱码。另外 `export_excel` 方法里 `cell.value` 赋值没有做类型转换,数字类型会丢失。
21
22AI 修复了这些 bug。
23
24**第五轮:**
25> 写单元测试,覆盖以下场景:空数据导出、大数据量导出、异常数据(包含特殊字符)、导出中断恢复。
26
27一套完整的测试用例就出来了。
28
29整个过程大概 20 分钟,如果纯手写,我估计要 2-3 个小时。
30
31---
32
33## 总结:我的 Prompt 模板
34
35最后分享一个我常用的 Prompt 模板,可以直接复制使用:
36
37

你是一位 [角色描述],具备以下技能:[技能列表]。

任务

[一句话描述任务目标]

具体要求

  1. [可量化的约束 1]
  2. [可量化的约束 2]
  3. [可量化的约束 3]

技术栈

  • 语言:[Python 3.11+]
  • 框架:[FastAPI]
  • 数据库:[PostgreSQL]

输出格式

请先给出设计方案和思路,确认后再写代码。

注意事项

  • 代码需要包含完整的错误处理
  • 关键逻辑要有注释
  • 不要使用已废弃的 API
1
2---
3
4## 写在最后
5
6回顾这半年,我最大的感受是:**AI 编程工具不是「银弹」,而是「倍增器」——它放大的是你的能力,而不是替代你的能力。**
7
8你用得好,它能帮你处理 80% 的体力活,让你把精力集中在架构设计和业务理解上。你用不好,它生成的代码可能比你自己写的还烂,你还得花更多时间去 debug。
9
10核心就一句话:**把 AI 当成一个聪明但没经验的实习生来带。** 你给它的指令越清晰、约束越具体、反馈越及时,它产出的代码就越靠谱。
11
12如果你也在用 AI 辅助编程,欢迎在评论区分享你的 Prompt 技巧,一起交流进步 👇
13
14---
15
16> 本文参与 [AI 编程](https://juejin.cn/tag/AI%20%E7%BC%96%E7%A8%8B) 话题征文。
17

我用 AI 编程半年,这 5 个 Prompt 技巧让我效率翻倍》 是转载文章,点击查看原文


相关推荐


官方文档像天书?这本开源的 WorkBuddy"蓝皮书",或许更适合小白入门
程序员晓凡2026/7/17

它不翻译官方说明书,而是用一个个真实任务,带你从第一项工作走到一支 AI 团队。 腾讯推出的全场景 AI 办公工具 WorkBuddy算是国内AI Agent 比较优秀的产品了。 简单来说,它是一个桌面 AI Agent 工作台:你只需要用自然语言描述需求,它就能自主读取本地文件、拆解任务、调用工具,最终交付一份可验收的成果——文档、表格、PPT、数据分析报告,甚至一条完整的视频。 官方文档地址:www.codebuddy.cn/docs/workbu… 你会发现一个问题:官方文档更像是写给


如何使用 Winget 下载 Claude Code 并实现绿色便携安装
越重天2026/7/8

🧑 博主简介:CSDN博客专家,「历代文学网」(PC端可以访问:https://lidaiwenxue.com/#/?__c=1000)总架构师,首席架构师,也是联合创始人!16年工作经验,精通Java编程,高并发设计,分布式系统架构设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友


线程概念与控制(中)
无忧.芙桃2026/6/30

本篇目标: 1.线程库的引入与理解 2.验证之前的概念 3.知道如何创建线程,终止线程,等待线程和分离线程 一.Linux线程控制 1.引入线程库 1.1.创建线程 通过之前对线程的理解,我们已经知道OS中有这么个执行流了,那么如何验证它是真的存在呢?那么就需要接下来的操作 首先我们需要创建一个线程,就需要用到pthread_create函数,如代码: 原型: int pthread_create(pthread_t *thread, const pthread_attr_


Re:Linux系统篇(三十三)文件篇·六:一文讲透 Linux 文件系统:从 EXT2 物理布局到 VFS 源码级全景解析
小此方2026/6/21

◆ 博主名称: 小此方-CSDN博客 大家好,欢迎来到小此方的博客。 ⭐️Linux系列个人专栏: 【主题曲】Linux ⭐️此方的GitHub: github_此方 ⭐️ Re系列专栏:我们思考 (Rethink) · 我们重建 (Rebuild) · 我们记录 (Record) 文章目录 概要&序论一、 EXT2 文件系统的整体磁盘布局1.1 从物理磁盘到逻辑分区


Kimi版超级玛丽效果“惊人”,配额不足5厘米!
甲维斯2026/6/13

让 AI 一句话写一个《超级玛丽》的测试继续! 测完了国内最强的 GLM-5.1 之后,我们来看看国内第二强的 Kimi2.6。 Kimi 这次的表现可是“非常精彩”,我都有点不知道该如何展示! 我就先上一张图吧: 各位有何感想?这是超级玛丽?玛丽呢?管道呢?蘑菇呢? 好像已经没有什么好评了,这个结果....已经很难打分了! 我就不信这个邪了,可能真的是我运气太好了,直接抽到废卡。 我专门用它们的 Kimi Code 再跑了一遍。 这次结果好了一些,但是也很“抽象”! 能玩了,但是并不能玩多


2.PDF长文档完整读取
HappyAcmen2026/6/6

一、先知道什么是RAG 1. 一句话给 RAG 下定义 RAG = 给大模型(比如 ChatGPT、豆包、开源大模型)外挂了一个你自己的私有知识库,让大模型能精准、无差错地回答你私有数据里的内容,不会瞎编、不会用过时的知识。 你可以把 RAG 理解成: 大模型是一个超级会说话、会总结的「秘书」,但她的知识是固定的、过时的,而且完全不知道你电脑里的 PDF、文档、笔记这些私有内容RAG 就是你给这个秘书配的一个专属智能文件柜 + 精准检索神器,你把自己的所有文档、PDF、笔记都放进这个柜子里,秘书


Neo4j + Graph RAG 医疗知识图谱工程实践:患者教育问答真正需要的是“关系可追溯”
swipe2026/5/31

做医疗患者教育问答时,很多团队第一反应是把科普文章、指南摘要、院内宣教材料全部切片,然后丢进向量库。用户问“高血压要看哪个科”“为什么建议做血压监测”“糖尿病患者教育材料应该关联哪些检查”,系统就从文档里召回几段相似文本,再让大模型总结。 这条路能跑通,但很快会遇到一个问题:患者教育知识不是只有“文本相似”,还有大量“实体关系”。 比如“高血压”不是孤立的一段说明,它可能关联到常见表现、风险器官、建议就诊科室、常见检查、生活方式教育材料、随访提醒。用户真正想问的也不一定是“高血压是什么”,而是:


面试通关:JWT 认证与双 Token 机制深度解析
Lee川2026/5/9

面试通关:JWT 认证与双 Token 机制深度解析 本文专为面试准备,以问答形式拆解 JWT 认证体系的核心考点。每个问题都包含"面试怎么说"和"代码怎么写的"两个层面,让你既能侃侃而谈,也能落笔有物。 开篇:为什么面试官爱问 JWT? 在前后端分离成为主流的今天,身份认证 是每个系统必须解决的第一道门槛。JWT(JSON Web Token)作为无状态认证方案的代表,几乎出现在每一份后端/全栈岗位的 JD 中。面试官问 JWT,通常是在考察三个层面的理解:


【动态规划算法】(斐波那契数列模型详解)
承渊政道2026/4/29

🔥承渊政道:个人主页 ❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 ✨逆境不吐心中苦,顺境不忘来时路!✨ 🎬 博主简介: 在算法学习的过程中,动态规划始终是一个绕不开的重要主题.它不仅是解决复杂问题的高效工具,也是面试和竞赛中出现频率极高的核心考点.对于初学者而言,动态规划之所以难,往往不在于代码实现本身,而在于如何理解


从0到1:Spring Boot 中WebSocket实战揭秘,开启实时通信新时代
常利兵2026/4/21

从0到1:Spring Boot 中WebSocket实战揭秘,开启实时通信新时代 引言:实时通信的需求与挑战 在当今数字化时代,互联网应用的实时交互需求日益增长。从在线聊天、股票行情实时更新,到多人协作办公、在线游戏等场景,实时通信已成为提升用户体验和业务效率的关键因素。传统的 HTTP 协议基于请求 - 响应模式,客户端发起请求,服务器被动响应,这种模式在实时通信场景中存在诸多局限性,如高延迟、高开销以及单向性(服务器无法主动推送数据,需客户端轮询) 。为了满足实时通信的需求,WebSo

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读