AI 辅助开发指南
本指南介绍如何使用 AI(Claude、GPT 等)高效开发 CondorAdmin 功能,提供 Prompt 模板和最佳实践。
AI 开发优势
传统开发 vs AI 辅助开发
| 对比项 | 传统开发 | AI 辅助开发 |
|---|---|---|
| 开发速度 | 手动编写,耗时较长 | AI 生成基础代码,快速启动 |
| 学习曲线 | 需要熟悉框架和规范 | AI 理解规范,降低上手难度 |
| 代码质量 | 依赖个人经验 | 遵循最佳实践,质量稳定 |
| 规范一致性 | 人工维护,易偏差 | AI 统一生成,一致性高 |
| 迭代优化 | 手动调整 | 对话式迭代,快速优化 |
适用场景
✅ 高度适合:
- 新增标准 CRUD 页面
- 创建新插件模块
- 生成数据模型和控制器
- 编写标准 API 接口
- 创建多语言翻译文件
⚠️ 需谨慎:
- 复杂业务逻辑(需人工审查)
- 性能优化代码(需测试验证)
- 安全敏感功能(需安全审查)
开发流程
标准流程
1. 准备上下文
├── 提供项目规范文档
├── 说明功能需求
└── 指定技术栈
2. AI 生成代码
├── 使用 Prompt 模板
├── 分步骤生成
└── 迭代优化
3. 人工审查
├── 检查规范符合度
├── 验证业务逻辑
└── 测试功能
4. 集成测试
├── 本地运行
├── 功能验证
└── 修复问题
5. 代码优化
├── 性能优化
├── 安全加固
└── 代码复审Prompt 模板库
模板 1:新增 CRUD 页面
基础 Prompt
你是 CondorAdmin 的高级开发者。请帮我创建一个 [功能名称] 管理页面。
## 项目规范
- 后端:PHP Webman + Eloquent ORM
- 前端:Vue 3 + TypeScript + Naive UI
- 参考文档:[新增页面开发](文档链接)
## 功能需求
创建 [功能名称] 的完整 CRUD 功能,包含以下字段:
- [字段1]:类型、说明、是否必填
- [字段2]:类型、说明、是否必填
- [字段3]:类型、说明、是否必填
## 输出要求
按以下顺序生成代码:
1. 数据库表结构(SQL)
2. 后端 Model
3. 后端 Controller
4. 路由配置
5. 菜单权限 SQL
6. 前端页面(Vue)
7. 翻译文件(中英文)
## 命名规范
- 表名:con_system_[table_name]
- Model:System[TableName]
- Controller:[TableName]Controller
- 路由:/api/condoradmin/[table_name]
请严格遵循 CondorAdmin 的开发规范。实际示例
你是 CondorAdmin 的高级开发者。请帮我创建一个"系统公告"管理页面。
## 项目规范
- 后端:PHP Webman + Eloquent ORM
- 前端:Vue 3 + TypeScript + Naive UI
- 时间字段使用 Unix 时间戳(bigint)
- 继承 Backend 基类
## 功能需求
创建系统公告的完整 CRUD 功能,包含以下字段:
- title(标题):varchar(100),必填,支持模糊搜索
- content(内容):text,必填,表单使用富文本编辑器
- type(类型):tinyint,必填,字典选择(1=系统通知 2=活动公告)
- status(状态):tinyint,必填,开关组件(0=禁用 1=启用)
- weigh(排序):int,默认0,数字输入
- createtime(创建时间):bigint,自动生成,列表显示
## 输出要求
1. 数据库表结构(con_system_notice)
2. Model(SystemNotice)
3. Controller(NoticeController)
4. 路由配置(/api/condoradmin/notice)
5. 菜单权限 SQL(ID: 200-205)
6. Vue 页面(src/views/system/notice/index.vue)
7. 翻译文件(中文 + 英文)
请一步步生成,每次生成一个文件。模板 2:创建新插件
你是 CondorAdmin 的插件开发专家。请帮我创建一个名为 [plugin_name] 的插件。
## 项目规范
- 插件目录:plugin/[plugin_name]/
- 表名前缀:con_[plugin_name]_
- 路由前缀:/core/[plugin_name]
- 菜单 ID 范围:[start_id]-[end_id]
- 参考文档:[插件开发指南](文档链接)
## 插件功能
[描述插件的核心功能和业务场景]
## 数据表设计
需要以下数据表:
1. [table1]:字段列表
2. [table2]:字段列表
## 输出要求
1. 插件目录结构
2. composer.json
3. install.sql(建表 + 菜单)
4. config/route.php
5. Model 和 Controller
6. 翻译文件
请按顺序生成,确保命名规范一致。模板 3:生成 API 接口
你是 CondorAdmin 的后端开发专家。请帮我为 [功能] 生成 API 接口。
## 现有代码
Model 路径:[model_path]
Model 类名:[model_class]
## 接口需求
1. GET /api/[module]/[action] - [说明]
- 参数:[参数列表]
- 返回:[返回格式]
2. POST /api/[module]/[action] - [说明]
- 参数:[参数列表]
- 验证规则:[规则]
- 返回:[返回格式]
## 要求
- 继承 Backend 基类
- 配置 $searchable 和 $sortable
- 添加参数验证
- 统一返回格式:{code, msg, data}
- 异常处理
请生成 Controller 代码和路由配置。模板 4:前端页面优化
你是 CondorAdmin 的前端专家。请帮我优化这个页面。
## 当前代码
[粘贴现有 Vue 代码]
## 优化目标
1. [优化点1]:如"添加高级搜索"
2. [优化点2]:如"优化表格性能"
3. [优化点3]:如"增强用户体验"
## 技术要求
- 使用 Vue 3 Composition API
- 遵循 CondorTable 配置规范
- 保持代码可读性
- 添加类型定义
请提供优化后的代码和改进说明。模板 5:生成翻译文件
你是 CondorAdmin 的国际化专家。请为以下页面生成中英文翻译文件。
## 页面字段
[粘贴字段列表或页面代码]
## 输出要求
1. TypeScript 类型接口(types/i18n.d.ts)
2. 中文翻译(locales/zh-cn.ts)
3. 英文翻译(locales/en-us.ts)
4. 翻译入口(locales/index.ts)
## 命名规范
- 类型接口:[ModuleName]Schema
- 翻译键:使用小写下划线
- 导出格式:{ 'zh-CN': zhCn, 'en-US': enUs }
请确保类型安全。模板 6:数据库迁移
你是 CondorAdmin 的数据库专家。请为 [表名] 生成数据库迁移脚本。
## 变更需求
[描述表结构变更,如:添加字段、修改字段、添加索引]
## 规范要求
- 时间字段使用 bigint(Unix 时间戳)
- 包含 createtime、updatetime、deleted_at
- 字段必须有注释
- 添加必要的索引
- 字符集:utf8mb4_unicode_ci
## 输出要求
1. ALTER TABLE SQL(修改表结构)
2. 数据迁移 SQL(如有数据变更)
3. 回滚 SQL(uninstall.sql)
请确保 SQL 可以安全执行。最佳实践
1. 提供充分上下文
✅ 好的做法:
请参考以下规范文档:
- 新增页面开发:[文档链接或粘贴关键内容]
- 命名规范:表名 con_system_xxx,Model 用驼峰
- 时间字段:使用 Unix 时间戳(bigint)
- 后端基类:继承 Backend 或 TranslatableBackend
现有项目结构:
- 数据库前缀:con_
- 路由前缀:/api/condoradmin/
- 翻译键前缀:condor.[module].[field]❌ 不好的做法:
帮我做一个用户管理页面。2. 分步骤生成
✅ 好的做法:
第1步:先生成数据库表结构 SQL
[等待 AI 输出]
第2步:基于表结构生成 Model
[等待 AI 输出]
第3步:生成 Controller
[等待 AI 输出]❌ 不好的做法:
一次性生成前后端所有代码。
(容易遗漏细节,难以控制质量)3. 迭代式优化
示例对话:
用户:生成一个订单管理页面
AI:[生成基础代码]
用户:很好!请为订单列表添加状态筛选和时间范围搜索
AI:[优化代码]
用户:订单详情需要显示商品列表,请添加关联查询
AI:[添加关联逻辑]
用户:完美!最后添加订单统计(总金额、订单数)
AI:[添加统计功能]4. 代码审查要点
AI 生成代码后,必须人工审查以下方面:
后端审查
typescript
审查清单:
□ 继承了正确的基类(Backend/TranslatableBackend)
□ $searchable、$sortable 配置正确
□ 时间字段使用 Unix 时间戳
□ Model 定义了 $casts 类型转换
□ 敏感字段添加到 $hidden
□ SQL 使用参数化查询(防注入)
□ 异常处理完整
□ 返回格式统一({code, msg, data})前端审查
typescript
审查清单:
□ 使用了 defineOptions 定义组件名
□ 所有文本使用 $t() 国际化
□ CondorTable 配置完整(urls、columns)
□ 表单验证规则合理
□ 操作按钮有权限判断
□ TypeScript 类型定义完整
□ 组件导入路径正确安全审查
typescript
审查清单:
□ 无 SQL 注入风险
□ 无 XSS 漏洞
□ 敏感数据已加密/脱敏
□ 权限控制到位
□ 文件上传有类型和大小限制5. 测试验证
功能测试
bash
# 后端测试
curl -X POST http://localhost:8787/api/condoradmin/xxx/index \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"page":1,"limit":20}'
# 前端测试
1. 列表查询 ✓
2. 新增数据 ✓
3. 编辑数据 ✓
4. 删除数据 ✓
5. 搜索过滤 ✓
6. 权限控制 ✓性能测试
typescript
检查项:
□ 列表查询是否使用了索引
□ 是否有 N+1 查询问题
□ 分页参数是否限制最大值
□ 关联查询是否使用了预加载
□ 前端是否做了防抖/节流实战案例
案例 1:会员管理功能
需求描述
创建会员管理功能,包含会员列表、会员等级、积分记录。
Step 1:准备 Prompt
你是 CondorAdmin 的高级开发者。请帮我创建一个"会员管理"功能模块。
## 项目规范
- 后端:PHP Webman + Eloquent ORM
- 前端:Vue 3 + TypeScript + Naive UI
- 参考:CondorAdmin 新增页面开发规范
## 数据表设计
1. 会员表(con_system_member)
- id:主键
- username:用户名,varchar(50),唯一
- nickname:昵称,varchar(50)
- avatar:头像,varchar(255)
- mobile:手机号,varchar(20)
- level_id:等级ID,int
- score:积分,int,默认0
- balance:余额,decimal(10,2),默认0.00
- status:状态,tinyint,1=正常 0=禁用
- createtime:创建时间,bigint
- updatetime:更新时间,bigint
2. 会员等级表(con_system_member_level)
- id:主键
- name:等级名称,varchar(50)
- discount:折扣率,decimal(3,2),如 0.88
- score:所需积分,int
- weigh:排序,int
- status:状态,tinyint
## 功能需求
1. 会员列表(支持搜索:用户名、手机号、等级、状态)
2. 会员详情(显示等级、积分、余额)
3. 等级管理(CRUD)
请先生成数据库表结构 SQL。Step 2:AI 生成表结构
AI 会生成:
sql
CREATE TABLE `con_system_member` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '用户名',
-- ... 其他字段
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
KEY `mobile` (`mobile`),
KEY `level_id` (`level_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;Step 3:逐步生成代码
继续对话:
很好!请生成 Model:
1. SystemMember
2. SystemMemberLevel
要求:
- 使用 Unix 时间戳
- 添加关联关系(member belongsTo level)
- 配置 $castsStep 4:审查与优化
审查 AI 生成的代码:
- ✅ 检查命名规范
- ✅ 验证关联关系
- ✅ 测试查询性能
- ✅ 添加业务逻辑
案例 2:使用 AI 调试错误
问题描述
列表查询报错:SQLSTATE[42S22]: Column not found
Prompt 示例
我的 CondorAdmin 项目遇到了错误,请帮我分析原因。
## 错误信息
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'system_member.level_name' in 'field list'
## 相关代码
Model(SystemMember.php):
[粘贴 Model 代码]
Controller(MemberController.php):
[粘贴 Controller 代码]
前端请求参数:
{
"page": 1,
"limit": 20,
"username": "test"
}
## 问题
为什么会找不到 level_name 字段?如何修复?AI 分析
AI 会:
- 分析错误原因(查询了不存在的字段)
- 提供解决方案(使用 join 或预加载)
- 给出修复代码
常用 AI 工具
推荐工具
| 工具 | 特点 | 适用场景 |
|---|---|---|
| Claude 3.5 Sonnet | 代码理解强,规范遵循好 | 复杂业务逻辑、代码审查 |
| GPT-4 | 通用能力强 | 快速原型、常规 CRUD |
| Cursor | IDE 集成,实时补全 | 边写边生成 |
| GitHub Copilot | 代码补全 | 提高编码速度 |
工具配置
Claude 配置
系统提示词(System Prompt):
你是 CondorAdmin 的高级开发者,精通:
- PHP Webman 框架
- Vue 3 + TypeScript
- Eloquent ORM
- Naive UI 组件库
开发规范:
1. 表名前缀:con_
2. 时间字段:Unix 时间戳(bigint)
3. 后端基类:Backend / TranslatableBackend
4. 前端组件:CondorTable 配置模式
5. 翻译键:[module].[field] 格式
请严格遵循 CondorAdmin 的开发规范。Cursor 配置
在 .cursorrules 文件中添加:
# CondorAdmin 开发规范
## 后端规范
- 表名:con_[module]_[table]
- Model:继承 support\Model
- Controller:继承 Backend
- 时间字段:bigint(Unix 时间戳)
## 前端规范
- 组件名:defineOptions({ name: 'xxx' })
- 国际化:所有文本使用 $t()
- 表格:使用 CondorTable 配置模式
- 类型:完整的 TypeScript 类型定义
## 命名规范
- 驼峰:Model、Controller、Component
- 下划线:表名、字段名、翻译键
- 短横线:路由路径避免的陷阱
1. 过度依赖 AI
❌ 错误做法:
- 盲目接受 AI 生成的所有代码
- 不理解代码逻辑就直接使用
- 遇到问题完全依赖 AI 解决
✅ 正确做法:
- AI 生成基础代码,人工审查优化
- 理解关键逻辑和业务流程
- 结合文档和最佳实践
2. 上下文不足
❌ 错误做法:
帮我做一个页面。✅ 正确做法:
请基于 CondorAdmin 规范创建订单管理页面:
- 参考文档:[链接]
- 表名:con_system_order
- 字段:[详细列表]
- 功能:列表、详情、状态变更3. 忽略性能和安全
❌ 错误做法:
- 不检查 SQL 查询性能
- 不验证用户输入
- 不考虑并发问题
✅ 正确做法:
- 审查查询是否使用索引
- 添加参数验证和过滤
- 考虑数据权限和并发控制
进阶技巧
1. 构建个人 Prompt 库
建立自己的 Prompt 模板库:
my-prompts/
├── backend/
│ ├── crud-controller.md
│ ├── api-endpoint.md
│ └── model-with-relations.md
├── frontend/
│ ├── list-page.md
│ ├── form-dialog.md
│ └── table-config.md
└── database/
├── create-table.md
└── migration.md2. 使用变量占位符
创建 {{module_name}} 管理功能:
- 表名:con_{{table_prefix}}_{{table_name}}
- Model:{{ModelName}}
- 路由:/api/condoradmin/{{route_path}}3. 多轮对话优化
Round 1: 生成基础代码
Round 2: 添加高级功能
Round 3: 性能优化
Round 4: 安全加固
Round 5: 代码审查总结
AI 辅助开发的黄金法则
- 明确需求 - 详细描述功能和规范
- 提供上下文 - 附带文档和示例
- 分步骤进行 - 逐步生成和验证
- 人工审查 - 检查质量和安全
- 迭代优化 - 持续改进代码
- 建立规范 - 形成团队标准流程
推荐学习路径
- 熟悉项目规范 - 阅读开发文档
- 掌握 Prompt 技巧 - 学习提问方式
- 实践小功能 - 从简单 CRUD 开始
- 逐步增加复杂度 - 尝试复杂业务
- 总结经验 - 建立个人最佳实践
相关文档
- 📖 新增页面开发
- 🔌 插件开发指南
- 📦 Backend 控制器
- 🎨 状态管理
- 🔐 权限系统