程序员必读的AI Prompt最佳实践
程序员的系统化 AI 提示词工程实践手册
本文档源码:https://github.com/microwind/ai-prompt
一、为什么程序员必须学习 Prompt Engineering?
现在程序员已经离不开AI了,无论cursor、windsurf还是claude code、codex,抑或直接把问题扔到大模型对话框里。基本上每个程序员都会用AI来辅助编程。但有时候 AI 生成的代码会"编译不通过"或者"逻辑奇怪",甚至出现“代码屎山”?这是什么原因?
本质问题:这可能不是模型的问题,而是我们的 "提问方式(提示词)" 不够准确。
你可以把AI当作实力超强的实习生
想象一下,你招聘了一位博学多才(背熟了 GitHub 上所有开源代码)但刚毕业的计算机实习生。
如果你说:"写个登录功能。"- ❌ 实习生可能会给你:
- - 没加密、直接拼 SQL 的 UserDao
- - 还在用 java.util.Date
- - 没有全局异常处理
复制代码 如果你说:"请基于 Spring Security 6,实现一个基于 JWT 的无状态认证过滤器。要求使用 Lombok,处理好全局异常,并符合 RESTful 规范。"- ✅ 实习生立马交出:
- - 生产级可用的代码
- - 完整的异常处理
- - 符合架构规范的实现
复制代码 核心认识
Prompt Engineering 本质:自然语言编程。
对程序员来说,就是写给 AI 的需求文档(Spec)。
以前我们指挥电脑用 Java,现在我们指挥 LLM 用自然语言。
很多人遇到的问题:
- AI 写的代码编译不通过
- 用了过时 API
- 逻辑不符合项目架构
- 单元测试缺失
原因往往不是模型,而是提问方式不够工程化。
当你像配置 Spring Bean 一样精准控制 AI,它就能成为你最得力的结对编程伙伴。
二、底层原理
2.1 LLM ≠ 编译器:概率预测 vs 确定性执行
Java 代码是确定性执行(Deterministic):- if (a > b) return true; // 永远是这个结果
复制代码 而LLM 本质是一个超级强大的 "Token 接龙机器":
- 不理解代码逻辑
- 只是在计算概率
- AI 写代码其实是在做高维度的自动补全
因此:
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |