在 AI 已经具备较强代码生成能力的今天,决定输出质量的关键,已不再是模型能力,而是我们如何提问。
提示词(Prompt)正在成为工程师的一项"新型基础能力"。
提示词优化的必要性
很多工程师在使用 AI 辅助编码时,都会遇到类似问题:
- 代码"看起来对",但无法直接落地
- 示例代码多,工程代码少
- 缺乏异常处理、边界条件与设计考量
- 风格与现有项目严重不一致
这些问题的本质并不是 AI "不懂工程",而是:AI 默认生成的是"通用示例",而不是"你的工程代码" 。
如果不对提示词进行优化,AI 会倾向于:
- 给出最安全、最宽泛的答案
- 忽略真实业务复杂度
- 回避关键约束(性能、事务、并发等)
提示词优化的意义在于:
- 把隐含在你脑中的工程约束显性化
- 把"模糊需求"翻译成"结构化输入"
- 让 AI 按工程标准而不是教学标准回答问题
一、核心公式
高质量回答 : = 角色定义 + 任务目标 + 上下文背景 + 输出约束
-
角色定义:定义 AI 是资深架构师还是算法专家。
-
任务目标:明确你要 AI 做什么(生成?修复?优化?解释?)
-
上下文背景:技术栈(JDK 17, Spring Boot 3.x)、依赖库、现有的业务逻辑。
-
输出约束:规定回答格式、风格、必须或禁止的内容,如禁止使用过时 API、可直接用于生产环境、需要处理并发。
二、 优质提示词的核心技巧
-
赋予专家角色,精准调用知识 :
不要直接说"写一个函数"。而要指定:"你是一位拥有15年经验的后端Java架构师,精通Spring Cloud微服务和性能调优。这样,AI的回答会立刻切换到"资深架构师"的语料库和思维模式,提供更专业、更具深度的方案,避免了初级答案。
-
分步引导:
不要一次性让 AI 写完整个系统。正确做法是拆解步骤,并要求AI"一步一步思考" ,比如先让它出数据库表结构,确认后再写 POJO,最后写 Service 逻辑。最后,编写对应的Controller和单元测试。
-
明确目标:
有时候仅说明"做什么"是不够的,还需要说明"做到什么程度",如输出的代码应具备可维护性,并可直接用于生产环境。
-
提供示例:
如果你有公司内部的代码风格,贴一段给 AI,它会模仿你的命名和注释风格。
-
明确技术规格:
要求: - JDK 17 语法 - 使用 MyBatis Plus - 使用 Redis 缓存 - 禁用 synchronized 改用 ReentrantLock - 通过 SonarQube 检测(零 Critical 漏洞) -
先思考再编码:在提示词末尾加上"在写代码前,请先列出你的实现思路",这能显著降低 AI 的逻辑错误。
三、实用提示词模板
通用模板:
Task (任务目标): 清晰描述一个具体的编码任务。
Background (背景): 简述项目情况、技术栈、相关模块。
Requirements (要求): 明确代码格式、规范、性能、安全等非功能要求
你是一位资深的 [Java/Go/Python] 开发工程师,精通 [Spring Boot/微服务/领域驱动设计]。
背景:
当前项目是一个 [电商/金融/SaaS] 系统,JDK 版本为 17,框架是 Spring Boot 2.7+。
任务:
请帮我实现 [具体功能描述,例如:基于 Redis 实现分布式锁]。
要求:
代码需要符合阿里巴巴 Java 开发手册规范。
必须包含详细的 JavaDoc 注释。
考虑异常处理和边界情况。
请先给出设计思路,再给出完整代码。
后端API开发
你是一名资深 Java 后端工程师。
请基于 Spring Boot 3.x 开发一个 REST API:
- 功能:根据订单号查询订单详情
- 路径:GET /api/orders/{orderNo}
- 返回统一响应结构
- 处理订单不存在的情况
- 提供 Controller + Service 示例
技术栈:
Java 17 / Spring Boot / MyBatis Plus
请直接输出代码。
前端页面生成
你是一名前端工程师,熟悉 Vue3 + TypeScript。
请生成一个订单详情页面:
- 包含订单基本信息展示
- 使用 Composition API
- 使用 Element Plus
- 调用 GET /api/orders/{orderNo}
请给出完整 Vue 组件代码。
代码优化
你是一名擅长高并发系统的 Java 架构师。
背景:
- 该接口 QPS 约 2000
- 数据量百万级
- 当前响应慢
请从以下角度分析:
1. SQL 优化
2. 缓存设计
3. 代码层面优化
4. 架构级建议
请给出具体可执行方案。
代码审查与重构
我有一段 Java 代码,请帮我进行 Code Review。
代码如下:
java
[粘贴你的代码]
审查维度:
潜在的空指针异常。
是否存在线程安全问题。
代码是否过于臃肿,违反单一职责原则。
是否有不必要的性能开销(如循环内的数据库查询)。
请先指出问题所在,然后给出重构后的优化代码。
参考文档:
https://mp.weixin.qq.com/s/OOONzNqLBkKNEtzLfX-dsw
https://platform.claude.com/docs/zh-CN/resources/prompt-library