TRAE提示词技巧完全指南:6大场景助你高效开发
本文将深入解析TRAE IDE中的6大实用提示词技巧,从产品设计到数据库建表、从前后端对接到业务逻辑表达,帮助你掌握与AI协作开发的最佳实践。
【个人主页:玄同765】
大语言模型(LLM)开发工程师|中国传媒大学·数字媒体技术(智能交互与游戏设计)
深耕领域:大语言模型开发 / RAG知识库 / AI Agent落地 / 模型微调
技术栈:Python / LangChain/RAG(Dify+Redis+Milvus)| SQL/NumPy | FastAPI+Docker ️
工程能力:专注模型工程化部署、知识库构建与优化,擅长全流程解决方案
「让AI交互更智能,让技术落地更高效」
欢迎技术探讨/项目合作! 关注我,解锁大模型与智能交互的无限可能!
核心内容:本文将深入解析TRAE IDE中的6大实用提示词技巧,从产品设计到数据库建表、从前后端对接到业务逻辑表达,帮助你掌握与AI协作开发的最佳实践。
一、引言:提示词工程的重要性
1.1 什么是提示词工程
提示词工程(Prompt Engineering) 是指通过精心设计和优化输入给AI模型的指令,以获得更准确、更有用的输出结果的技术。在TRAE这样的AI原生IDE中,掌握提示词技巧可以大幅提升开发效率。
1.2 为什么提示词技巧很重要
┌─────────────────────────────────────────────────────────────┐
│ 提示词技巧的价值 │
├─────────────────────────────────────────────────────────────┤
│ ✅ 提高AI输出质量 - 获得更准确、更完整的代码 │
│ ✅ 减少迭代次数 - 一次性获得满意的结果 │
│ ✅ 降低沟通成本 - 清晰表达需求,减少误解 │
│ ✅ 标准化开发流程 - 建立团队统一的AI协作规范 │
│ ✅ 提升开发效率 - 从需求到代码的端到端自动化 │
└─────────────────────────────────────────────────────────────┘
二、六大核心提示词技巧详解
2.1 技巧一:怎样写产品设计书?
2.1.1 技巧说明
通过结构化的提示词,让AI生成完整的产品设计文档,包含技术栈推荐、数据库设计、接口规范等核心内容。
2.1.2 标准提示词模板
请帮我生成一份产品设计书,包含以下内容:
1. 技术栈推荐(前端、后端、数据库)
2. 数据库设计(表、字段、关系)
3. 接口规范(统一请求/响应格式)
4. 模块及功能详细描述
5. 业务流程说明
项目背景:
- 项目名称:[你的项目名称]
- 目标用户:[目标用户群体]
- 核心功能:[主要功能点]
- 技术约束:[如有特殊要求请说明]
2.1.3 实际应用示例
示例:电商后台管理系统
请帮我生成一份产品设计书,包含以下内容:
1. 技术栈推荐(前端、后端、数据库)
2. 数据库设计(表、字段、关系)
3. 接口规范(统一请求/响应格式)
4. 模块及功能详细描述
5. 业务流程说明
项目背景:
- 项目名称:电商后台管理系统
- 目标用户:电商运营人员、管理员
- 核心功能:商品管理、订单管理、用户管理、数据统计
- 技术约束:使用Vue3 + Spring Boot + MySQL
2.1.4 AI输出示例
# 电商后台管理系统 - 产品设计书
## 1. 技术栈推荐
### 前端
- **框架**: Vue 3 + TypeScript
- **UI组件库**: Element Plus
- **状态管理**: Pinia
- **路由**: Vue Router 4
- **HTTP客户端**: Axios
### 后端
- **框架**: Spring Boot 3.x
- **数据库**: MySQL 8.0
- **缓存**: Redis
- **ORM**: MyBatis Plus
- **安全**: Spring Security + JWT
## 2. 数据库设计
### 核心表结构
#### 用户表 (users)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增 |
| username | VARCHAR(50) | 用户名 |
| email | VARCHAR(100) | 邮箱 |
| role | TINYINT | 角色:1-管理员 2-运营 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
#### 商品表 (products)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增 |
| name | VARCHAR(200) | 商品名称 |
| price | DECIMAL(10,2) | 价格 |
| stock | INT | 库存 |
| status | TINYINT | 状态:0-下架 1-上架 |
| created_at | DATETIME | 创建时间 |
...(更多表结构)
## 3. 接口规范
### 统一响应格式
```json
{
"status": 200,
"message": "操作成功",
"data": {}
}
```
### 标准HTTP状态码
- 200: 成功
- 400: 请求参数错误
- 401: 未授权
- 500: 服务器内部错误
## 4. 模块及功能详细描述
| 模块名称 | 功能点 | 功能描述 | 优先级 |
|---------|--------|----------|--------|
| **商品管理** | 商品列表 | 分页展示商品,支持筛选和排序 | 高 |
| | 商品新增/编辑 | 表单录入商品信息,图片上传 | 高 |
| | 商品上下架 | 控制商品在前端的展示状态 | 高 |
| | 库存管理 | 实时库存查询和预警设置 | 中 |
| **订单管理** | 订单列表 | 分页展示订单,多维度筛选 | 高 |
| | 订单详情 | 展示订单完整信息和物流状态 | 高 |
| | 订单状态流转 | 待付款→已付款→待发货→已发货→已完成 | 高 |
| | 退款处理 | 处理用户退款申请,原路退回 | 中 |
| **用户管理** | 用户列表 | 管理注册用户信息和状态 | 中 |
| | 权限管理 | 分配用户角色和菜单权限 | 中 |
| | 登录日志 | 记录用户登录历史和IP | 低 |
| **数据统计** | 销售报表 | 按日/周/月统计销售额和订单量 | 中 |
| | 商品分析 | 热销商品排行和库存周转率 | 中 |
| | 用户分析 | 新用户增长和活跃用户统计 | 低
2.1.5 最佳实践
- 明确项目背景:提供足够的上下文信息
- 指定技术约束:如果有技术栈要求,务必提前说明
- 分步骤生成:如果文档较长,可以分模块逐步生成
- 迭代优化:根据初稿进行补充和调整
2.2 技巧二:数据库建表
2.2.1 技巧说明
基于产品设计书中的数据库设计,生成标准化的SQL建表语句,包含完整的数据类型、注释、索引等。
2.2.2 标准提示词模板
请根据产品设计书中的数据库设计,生成SQL建表语句。
要求:
1. 所有字段有清晰的数据类型和注释
2. 主键/外键/索引明确
3. 适当增加created_at, updated_at字段
4. 使用标准SQL语法(MySQL/PostgreSQL)
5. 添加表级和字段级注释
参考文档:@产品设计书.md
#### 2.2.3 实际应用示例
请根据以下数据库设计,生成MySQL建表语句。
用户表设计:
- id: 主键,自增
- username: 用户名,唯一,长度50
- email: 邮箱,唯一,长度100
- password: 密码,长度255(存储加密后的密码)
- role: 角色,1-管理员 2-用户
- status: 状态,0-禁用 1-启用
- created_at: 创建时间
- updated_at: 更新时间
要求:
1. 使用InnoDB引擎
2. 字符集utf8mb4
3. 添加合适的索引
4. 所有字段添加注释
#### 2.2.4 AI输出示例
```sql
-- 用户表
CREATE TABLE `users` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
`email` VARCHAR(100) NOT NULL COMMENT '邮箱地址',
`password` VARCHAR(255) NOT NULL COMMENT '加密密码',
`role` TINYINT NOT NULL DEFAULT 2 COMMENT '角色:1-管理员 2-用户',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用 1-启用',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
UNIQUE KEY `uk_email` (`email`),
KEY `idx_role` (`role`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
-- 商品表
CREATE TABLE `products` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(200) NOT NULL COMMENT '商品名称',
`description` TEXT COMMENT '商品描述',
`price` DECIMAL(10,2) NOT NULL COMMENT '商品价格',
`stock` INT NOT NULL DEFAULT 0 COMMENT '库存数量',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-下架 1-上架',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_status` (`status`),
KEY `idx_price` (`price`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品表';
2.2.5 最佳实践
- 指定数据库类型:MySQL、PostgreSQL、Oracle等语法有差异
- 明确字段约束:NOT NULL、DEFAULT、UNIQUE等
- 合理设计索引:主键、外键、查询常用字段加索引
- 添加注释:方便后续维护和理解
- 标准化命名:使用下划线命名法,表名单数或复数统一
2.3 技巧三:前端直接对接后端
2.3.1 技巧说明
通过引用UI设计文档和后端接口文档,让AI生成完整的前端页面代码,并自动对接后端API。
2.3.2 标准提示词模板
@UI页面设计文档 @后端接口开发指南.md
请根据UI页面设计文档生成前端页面代码,
并调用对应的后端接口,保证功能正常运行。
要求:
1. 使用[技术栈,如Vue3/React]实现
2. 严格按照UI设计实现样式
3. 正确调用后端接口
4. 处理loading状态和错误提示
5. 添加表单验证
6. 响应式布局适配
2.3.3 实际应用示例
@商品列表UI设计.md @商品管理接口文档.md
请生成商品列表页面,包含以下功能:
1. 商品列表展示(表格形式)
2. 分页功能
3. 按商品名称搜索
4. 按状态筛选
5. 新增/编辑/删除商品按钮
技术要求:
- 使用Vue3 + Element Plus
- 使用Composition API
- 对接后端RESTful接口
- 添加TypeScript类型定义
2.3.4 AI输出示例
<template>
<div class="product-list">
<!-- 搜索栏 -->
<el-card class="search-card">
<el-form :model="searchForm" inline>
<el-form-item label="商品名称">
<el-input v-model="searchForm.name" placeholder="请输入商品名称" clearable />
</el-form-item>
<el-form-item label="状态">
<el-select v-model="searchForm.status" placeholder="请选择状态" clearable>
<el-option label="上架" :value="1" />
<el-option label="下架" :value="0" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch">搜索</el-button>
<el-button @click="handleReset">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<!-- 操作栏 -->
<el-card class="table-card">
<template #header>
<div class="card-header">
<span>商品列表</span>
<el-button type="primary" @click="handleAdd">新增商品</el-button>
</div>
</template>
<!-- 数据表格 -->
<el-table :data="productList" v-loading="loading" border>
<el-table-column prop="id" label="ID" width="80" />
<el-table-column prop="name" label="商品名称" min-width="200" />
<el-table-column prop="price" label="价格" width="120">
<template #default="{ row }">
¥{{ row.price }}
</template>
</el-table-column>
<el-table-column prop="stock" label="库存" width="100" />
<el-table-column prop="status" label="状态" width="100">
<template #default="{ row }">
<el-tag :type="row.status === 1 ? 'success' : 'info'">
{{ row.status === 1 ? '上架' : '下架' }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)">编辑</el-button>
<el-button type="danger" link @click="handleDelete(row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
v-model:current-page="pagination.page"
v-model:page-size="pagination.pageSize"
:total="pagination.total"
:page-sizes="[10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handlePageChange"
/>
</el-card>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { getProductList, deleteProduct } from '@/api/product'
// 类型定义
interface Product {
id: number
name: string
price: number
stock: number
status: number
}
interface Pagination {
page: number
pageSize: number
total: number
}
// 响应式数据
const loading = ref(false)
const productList = ref<Product[]>([])
const searchForm = reactive({
name: '',
status: undefined as number | undefined
})
const pagination = reactive<Pagination>({
page: 1,
pageSize: 10,
total: 0
})
// 获取商品列表
const fetchProductList = async () => {
loading.value = true
try {
const res = await getProductList({
page: pagination.page,
pageSize: pagination.pageSize,
name: searchForm.name,
status: searchForm.status
})
productList.value = res.data.list
pagination.total = res.data.total
} catch (error) {
ElMessage.error('获取商品列表失败')
} finally {
loading.value = false
}
}
// 搜索
const handleSearch = () => {
pagination.page = 1
fetchProductList()
}
// 重置
const handleReset = () => {
searchForm.name = ''
searchForm.status = undefined
handleSearch()
}
// 分页大小变化
const handleSizeChange = (val: number) => {
pagination.pageSize = val
fetchProductList()
}
// 页码变化
const handlePageChange = (val: number) => {
pagination.page = val
fetchProductList()
}
// 新增
const handleAdd = () => {
// 跳转到新增页面或打开弹窗
}
// 编辑
const handleEdit = (row: Product) => {
// 跳转到编辑页面或打开弹窗
}
// 删除
const handleDelete = async (row: Product) => {
try {
await ElMessageBox.confirm('确认删除该商品吗?', '提示', {
type: 'warning'
})
await deleteProduct(row.id)
ElMessage.success('删除成功')
fetchProductList()
} catch (error) {
// 用户取消或删除失败
}
}
// 初始化
onMounted(() => {
fetchProductList()
})
</script>
<style scoped>
.product-list {
padding: 20px;
}
.search-card {
margin-bottom: 20px;
}
.card-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.el-pagination {
margin-top: 20px;
justify-content: flex-end;
}
</style>
2.3.5 最佳实践
- 提供完整的设计文档:UI设计和接口文档要详细
- 明确技术栈:指定前端框架、组件库、状态管理方案
- 要求类型定义:TypeScript类型可以提高代码质量
- 包含错误处理:loading状态、错误提示、表单验证
- 模块化组织:API调用、类型定义、组件逻辑分离
2.4 技巧四:只需一套表达式!写清楚任何业务逻辑
2.4.1 技巧说明
使用结构化的"如果...那么...否则如果...否则"表达式,清晰描述复杂的业务逻辑规则。
2.4.2 标准表达式模板
如果 【条件1】 且 【条件2】
那么 【结果1】
否则如果 【条件3】
那么 【结果2】
否则
【结果3】
2.4.3 实际应用示例
示例1:订单状态流转
订单状态流转规则:
如果 【订单状态 = "待付款"】 且 【当前时间 < 订单创建时间 + 30分钟】
那么 【用户可以支付订单】
否则如果 【订单状态 = "待付款"】 且 【当前时间 >= 订单创建时间 + 30分钟】
那么 【订单自动取消,状态变为"已取消"】
否则如果 【订单状态 = "已付款"】 且 【库存充足】
那么 【订单状态变为"待发货",扣减库存】
否则如果 【订单状态 = "已付款"】 且 【库存不足】
那么 【触发退款流程,订单状态变为"退款中"】
否则如果 【订单状态 = "待发货"】 且 【管理员点击发货】
那么 【订单状态变为"已发货",记录物流信息】
否则如果 【订单状态 = "已发货"】 且 【用户确认收货】
那么 【订单状态变为"已完成"】
否则
【保持当前状态,记录操作日志】
示例2:会员等级计算
会员等级计算规则:
如果 【累计消费金额 >= 10000元】 且 【注册时间 >= 1年】
那么 【会员等级 = "钻石会员",享受8折优惠】
否则如果 【累计消费金额 >= 5000元】 且 【注册时间 >= 6个月】
那么 【会员等级 = "白金会员",享受8.5折优惠】
否则如果 【累计消费金额 >= 2000元】
那么 【会员等级 = "黄金会员",享受9折优惠】
否则如果 【累计消费金额 >= 500元】
那么 【会员等级 = "白银会员",享受9.5折优惠】
否则
【会员等级 = "普通会员",无折扣】
2.4.4 AI输出示例
基于上述业务逻辑,AI可以生成对应的代码实现:
# 订单状态流转逻辑
def process_order(order, action=None):
"""
处理订单状态流转
"""
from datetime import datetime, timedelta
current_time = datetime.now()
order_time = order.created_at
# 如果订单状态为待付款且未超时
if order.status == "待付款" and current_time < order_time + timedelta(minutes=30):
return {"allow_payment": True, "message": "可以支付订单"}
# 如果订单状态为待付款但已超时
elif order.status == "待付款" and current_time >= order_time + timedelta(minutes=30):
order.status = "已取消"
order.save()
return {"status_changed": True, "new_status": "已取消", "message": "订单已自动取消"}
# 如果订单已付款且库存充足
elif order.status == "已付款" and order.product.stock >= order.quantity:
order.status = "待发货"
order.product.stock -= order.quantity
order.product.save()
order.save()
return {"status_changed": True, "new_status": "待发货", "message": "订单待发货,库存已扣减"}
# 如果订单已付款但库存不足
elif order.status == "已付款" and order.product.stock < order.quantity:
order.status = "退款中"
order.save()
# 触发退款流程
process_refund(order)
return {"status_changed": True, "new_status": "退款中", "message": "库存不足,已触发退款"}
# 如果订单待发货且管理员点击发货
elif order.status == "待发货" and action == "发货":
order.status = "已发货"
order.save()
return {"status_changed": True, "new_status": "已发货", "message": "订单已发货"}
# 如果订单已发货且用户确认收货
elif order.status == "已发货" and action == "确认收货":
order.status = "已完成"
order.save()
return {"status_changed": True, "new_status": "已完成", "message": "订单已完成"}
# 其他情况
else:
log_operation(order, "状态检查")
return {"status_changed": False, "current_status": order.status}
# 会员等级计算
def calculate_member_level(user):
"""
计算会员等级
"""
from datetime import datetime, timedelta
total_amount = user.total_consumption
register_days = (datetime.now() - user.created_at).days
# 钻石会员
if total_amount >= 10000 and register_days >= 365:
return {
"level": "钻石会员",
"discount": 0.8,
"benefits": ["专属客服", "优先发货", "生日礼品"]
}
# 白金会员
elif total_amount >= 5000 and register_days >= 180:
return {
"level": "白金会员",
"discount": 0.85,
"benefits": ["专属客服", "优先发货"]
}
# 黄金会员
elif total_amount >= 2000:
return {
"level": "黄金会员",
"discount": 0.9,
"benefits": ["积分加倍"]
}
# 白银会员
elif total_amount >= 500:
return {
"level": "白银会员",
"discount": 0.95,
"benefits": []
}
# 普通会员
else:
return {
"level": "普通会员",
"discount": 1.0,
"benefits": []
}
2.4.5 最佳实践
- 条件要完整:考虑所有可能的情况和边界条件
- 逻辑要互斥:确保条件之间不会同时满足(除非故意设计)
- 顺序很重要:将最具体的条件放在前面,通用的放在后面
- 添加注释:为复杂的业务规则添加说明
- 使用表格辅助:对于多维度规则,可以用决策表辅助表达
2.5 技巧五:怎样获得标准化接口文档?
2.5.1 技巧说明
基于产品设计书,生成结构化的后端接口开发指南,包含完整的接口定义、请求/响应格式、错误码等。
2.5.2 标准提示词模板
@产品设计书.md
请根据这份产品设计书,生成后端接口开发指南。
要求:
1. 按模块 → 功能 → 接口三级结构列出
2. 每个接口写明:
- 请求地址(URL)
- 请求方式(GET/POST/PUT/DELETE)
- 请求参数(名称、类型、必填、说明)
- 响应内容(成功/失败示例)
3. 响应内容必须统一设计(status, message, data 三个字段)
4. 添加接口权限说明(是否需要登录、角色要求)
5. 添加错误码定义
2.5.3 实际应用示例
@电商后台管理系统设计书.md
请生成商品管理模块的接口文档。
要求:
1. 包含商品列表、商品详情、新增商品、编辑商品、删除商品、上下架商品接口
2. 使用RESTful API设计风格
3. 请求参数使用驼峰命名
4. 响应统一格式:{ status: 200, message: "", data: {} }
5. 添加分页参数说明
6. 添加接口权限:管理员可操作,运营只能查看
2.5.4 AI输出示例
# 商品管理模块 - 接口文档
## 接口概览
| 接口名称 | 请求方式 | URL | 权限 |
|---------|---------|-----|------|
| 获取商品列表 | GET | /api/products | 管理员/运营 |
| 获取商品详情 | GET | /api/products/{id} | 管理员/运营 |
| 新增商品 | POST | /api/products | 管理员 |
| 编辑商品 | PUT | /api/products/{id} | 管理员 |
| 删除商品 | DELETE | /api/products/{id} | 管理员 |
| 商品上下架 | PATCH | /api/products/{id}/status | 管理员 |
---
## 1. 获取商品列表
### 基本信息
- **接口URL**: `/api/products`
- **请求方式**: GET
- **接口说明**: 分页获取商品列表,支持筛选和排序
### 请求参数
#### Query参数
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| page | int | 否 | 页码,默认1 |
| pageSize | int | 否 | 每页数量,默认10 |
| name | string | 否 | 商品名称模糊搜索 |
| status | int | 否 | 状态:0-下架 1-上架 |
| minPrice | decimal | 否 | 最低价格 |
| maxPrice | decimal | 否 | 最高价格 |
| sortField | string | 否 | 排序字段:price/createdAt |
| sortOrder | string | 否 | 排序方式:asc/desc |
### 响应参数
#### 成功响应 (200)
json
{
"status": 200,
"message": "操作成功",
"data": {
"list": [
{
"id": 1,
"name": "iPhone 15 Pro",
"price": 7999.00,
"stock": 100,
"status": 1,
"createdAt": "2024-01-15 10:30:00"
}
],
"pagination": {
"page": 1,
"pageSize": 10,
"total": 100,
"totalPages": 10
}
}
}
#### 失败响应
```json
{
"status": 400,
"message": "请求参数错误",
"data": null
}
```
---
## 2. 新增商品
### 基本信息
- **接口URL**: `/api/products`
- **请求方式**: POST
- **接口说明**: 新增商品信息
### 请求参数
#### Body参数 (application/json)
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| name | string | 是 | 商品名称,2-200字符 |
| description | string | 否 | 商品描述 |
| price | decimal | 是 | 商品价格,必须>0 |
| stock | int | 是 | 库存数量,必须>=0 |
| categoryId | int | 是 | 分类ID |
| images | array | 否 | 商品图片URL数组 |
### 请求示例
json
{
"name": "iPhone 15 Pro",
"description": "最新款iPhone",
"price": 7999.00,
"stock": 100,
"categoryId": 1,
"images": ["https://example.com/img1.jpg"]
}
### 响应参数
#### 成功响应 (200)
{
"status": 200,
"message": "商品创建成功",
"data": {
"id": 1,
"name": "iPhone 15 Pro",
"price": 7999.00,
"stock": 100,
"status": 1,
"createdAt": "2024-01-15 10:30:00"
}
}
---
## 错误码定义
| 错误码 | 说明 |
|--------|------|
| 200 | 成功 |
| 400 | 请求参数错误 |
| 401 | 未授权,请重新登录 |
| 403 | 权限不足 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |
| 1001 | 商品名称已存在 |
| 1002 | 库存不足 |
| 1003 | 商品分类不存在 |
2.5.5 最佳实践
- 统一响应格式:所有接口使用相同的响应结构
- 清晰的参数说明:包括类型、必填、取值范围、示例值
- 完整的示例:提供请求和响应的完整JSON示例
- 错误码规范:定义统一的错误码体系
- 权限说明明确:标注每个接口的访问权限要求
- 版本控制:在URL或Header中体现API版本
2.6 技巧六:如何保证功能不遗漏?
2.6.1 技巧说明
通过系统化的功能分析提示词,让AI帮助检查功能完整性,并补充可能遗漏的功能点。
2.6.2 标准提示词模板
我想做一个关于【xxx】的系统/应用,
功能包括【功能1、功能2、功能3...】,
请帮我分析是否完整,并补充缺失的功能。
要求:
1. 按模块分类列出所有功能
2. 区分核心功能和扩展功能
3. 补充可能遗漏的边界情况处理
4. 考虑管理员/用户不同角色的功能需求
5. 添加数据安全和权限控制相关功能
2.6.3 实际应用示例
我想做一个关于【在线图书管理系统】的应用,
功能包括:
- 图书列表展示
- 图书搜索
- 图书借阅
- 图书归还
请帮我分析是否完整,并补充缺失的功能。
目标用户:图书馆管理员和读者
使用场景:学校图书馆
2.6.4 AI输出示例
# 在线图书管理系统 - 功能完整性分析
## 现有功能评估
您提供的功能覆盖了核心业务,但缺少一些重要的支撑功能和边界处理。
## 功能补充建议
### 核心功能模块
#### 1. 图书管理模块
**已有功能:**
- ✅ 图书列表展示
- ✅ 图书搜索
**建议补充:**
- 📌 图书分类管理(科技、文学、历史等)
- 📌 图书详情展示(ISBN、作者、出版社、简介)
- 📌 图书入库/出库管理
- 📌 图书库存预警(库存不足提醒)
- 📌 图书损坏/遗失登记
#### 2. 借阅管理模块
**已有功能:**
- ✅ 图书借阅
- ✅ 图书归还
**建议补充:**
- 📌 借阅期限设置(不同类型图书不同期限)
- 📌 续借功能
- 📌 逾期提醒(短信/邮件/站内信)
- 📌 逾期罚款计算
- 📌 借阅历史查询
- 📌 当前借阅状态查询
#### 3. 用户管理模块(新增)
**核心功能:**
- 📌 读者注册/登录
- 📌 读者信息管理
- 📌 借阅证管理(办理、挂失、补办)
- 📌 读者信用评分
- 📌 黑名单管理(违规读者)
#### 4. 预约管理模块(新增)
**核心功能:**
- 📌 图书预约(已被借出的书)
- 📌 预约提醒(图书归还后通知)
- 📌 预约取消
- 📌 预约优先级管理
#### 5. 数据统计模块(新增)
**核心功能:**
- 📌 借阅统计(按天/周/月/年)
- 📌 热门图书排行
- 📌 读者借阅排行
- 📌 图书流通率分析
- 📌 数据报表导出
#### 6. 系统管理模块(新增)
**核心功能:**
- 📌 管理员账号管理
- 📌 角色权限管理
- 📌 系统参数配置(借阅期限、罚款标准等)
- 📌 操作日志记录
- 📌 数据备份与恢复
### 边界情况处理
1. **并发控制**
- 同一本书被多人同时预约的处理
- 库存为1时的借阅冲突处理
2. **异常处理**
- 图书丢失后的赔偿流程
- 读者证丢失后的处理
- 系统故障时的数据恢复
3. **数据一致性**
- 借阅/归还时的库存同步
- 逾期状态的自动更新
### 权限控制矩阵
| 功能 | 管理员 | 普通读者 |
|------|--------|----------|
| 图书管理 | ✅ | ❌ |
| 借阅/归还 | ✅ | 仅限自己 |
| 用户管理 | ✅ | 仅限自己 |
| 数据统计 | ✅ | 个人数据 |
| 预约图书 | ✅ | ✅ |
| 查看图书 | ✅ | ✅ |
### 推荐开发优先级
**第一阶段(MVP):**
1. 图书管理(增删改查)
2. 用户管理(注册登录)
3. 借阅/归还(核心流程)
**第二阶段:**
4. 图书搜索和分类
5. 借阅历史查询
6. 逾期提醒
**第三阶段:**
7. 图书预约
8. 数据统计
9. 系统管理
**第四阶段:**
10. 高级功能(信用评分、推荐系统等)
2.6.5 最佳实践
- 明确目标用户:不同用户群体需要不同的功能
- 区分核心与扩展:优先保证核心功能完整
- 考虑边界情况:异常流程和并发问题
- 权限分离:不同角色有不同的功能权限
- 分阶段开发:按优先级分阶段实现
- 参考竞品:对比同类产品,学习其功能设计
三、综合实战:从需求到代码的完整流程
3.1 实战场景
假设我们要开发一个【在线考试系统】,展示如何使用以上6个技巧完成从需求分析到代码生成的全过程。
3.2 完整工作流程
Step 1: 功能完整性分析(技巧六)
我想做一个关于【在线考试系统】的应用,
功能包括:
- 创建考试
- 学生答题
- 自动评分
- 成绩查看
请帮我分析是否完整,并补充缺失的功能。
Step 2: 生成产品设计书(技巧一)
基于补充后的功能列表,生成完整的产品设计书。
Step 3: 生成数据库表结构(技巧二)
根据产品设计书中的数据库设计,生成SQL建表语句。
Step 4: 生成接口文档(技巧五)
基于产品设计书,生成标准化的后端接口文档。
Step 5: 编写业务逻辑(技巧四)
使用结构化表达式描述复杂的考试规则:
考试规则:
如果 【当前时间 < 考试开始时间】
那么 【显示"考试未开始",显示倒计时】
否则如果 【当前时间 >= 考试开始时间】 且 【当前时间 <= 考试结束时间】 且 【学生未交卷】
那么 【允许进入考试,开始计时】
否则如果 【当前时间 > 考试结束时间】 且 【学生未交卷】
那么 【自动交卷,按已答题目评分】
否则如果 【学生已交卷】
那么 【显示"已完成考试",展示成绩】
否则
【显示错误信息】
Step 6: 生成前端页面(技巧三)
引用UI设计文档和接口文档,生成完整的前端代码。
3.3 效率提升对比
| 阶段 | 传统开发 | 使用TRAE提示词技巧 | 效率提升 |
|---|---|---|---|
| 需求分析 | 2天 | 2小时 | 8倍 |
| 产品设计 | 3天 | 4小时 | 6倍 |
| 数据库设计 | 1天 | 1小时 | 8倍 |
| 接口设计 | 2天 | 2小时 | 8倍 |
| 前端开发 | 5天 | 1天 | 5倍 |
| 总计 | 13天 | 2天 | 6.5倍 |
四、提示词优化技巧
4.1 提示词编写原则
- 明确具体:避免模糊描述,提供具体的要求和约束
- 结构化组织:使用编号、列表、表格组织信息
- 提供上下文:给出足够的背景信息和业务场景
- 示例驱动:提供输入/输出示例,帮助AI理解期望
- 迭代优化:根据输出结果不断调整提示词
4.2 常用提示词模板
代码生成类
请生成【功能描述】的代码。
技术要求:
- 语言/框架:【如Python/Java/Vue3】
- 设计模式:【如MVC/工厂模式】
- 代码规范:【如PEP8/Google Style】
功能要求:
1. 【要求1】
2. 【要求2】
3. 【要求3】
其他说明:
- 【补充说明1】
- 【补充说明2】
文档生成类
请生成【文档类型】。
参考信息:
【提供相关背景资料】
内容要求:
1. 【章节1】
2. 【章节2】
3. 【章节3】
格式要求:
- 【格式要求1】
- 【格式要求2】
问题分析类
请分析以下问题并提供解决方案。
问题描述:
【详细描述问题】
当前情况:
【描述现状】
期望结果:
【描述期望】
约束条件:
- 【约束1】
- 【约束2】
4.3 常见错误与解决方案
| 错误类型 | 示例 | 解决方案 |
|---|---|---|
| 过于模糊 | "帮我写个功能" | 明确功能名称、输入输出、业务规则 |
| 缺少上下文 | "优化这段代码" | 提供代码用途、性能要求、运行环境 |
| 要求冲突 | "既要简单又要功能完整" | 明确优先级,分阶段实现 |
| 术语不一致 | 混用"用户"和"客户" | 统一术语表,明确定义 |
| 边界不清 | 未说明异常情况 | 列出所有边界条件和异常场景 |
五、总结与建议
5.1 核心要点回顾
- 产品设计书生成:结构化描述需求,获得完整的技术方案
- 数据库建表:明确字段约束和索引,获得标准化SQL
- 前后端对接:引用设计文档,获得可运行的完整代码
- 业务逻辑表达:使用"如果...那么...否则"结构化表达规则
- 接口文档生成:统一格式规范,获得完整的API文档
- 功能完整性检查:系统化分析,避免功能遗漏
5.2 使用建议
- 从简单开始:先掌握基础提示词,再逐步学习高级技巧
- 建立模板库:将常用的提示词整理成模板,重复使用
- 团队协作:统一团队的提示词规范,提高协作效率
- 持续优化:根据实际使用效果,不断优化提示词
- 结合人工审核:AI生成的内容需要人工审核和调整
5.3 进阶学习资源
结语:掌握这6大提示词技巧,你将能够充分发挥TRAE AI IDE的能力,从需求分析到代码生成,实现开发效率的质的飞跃。记住,好的提示词是AI协作开发的关键!
下一步行动:
1. 收藏本文作为提示词参考手册
2. 在实际项目中尝试使用这些技巧
3. 根据项目特点,建立专属的提示词模板库
4. 与团队分享,建立统一的AI协作规范
更多推荐




所有评论(0)