Skip to content

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)
- 配置 $casts

Step 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 会:

  1. 分析错误原因(查询了不存在的字段)
  2. 提供解决方案(使用 join 或预加载)
  3. 给出修复代码

常用 AI 工具

推荐工具

工具特点适用场景
Claude 3.5 Sonnet代码理解强,规范遵循好复杂业务逻辑、代码审查
GPT-4通用能力强快速原型、常规 CRUD
CursorIDE 集成,实时补全边写边生成
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.md

2. 使用变量占位符

创建 {{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 辅助开发的黄金法则

  1. 明确需求 - 详细描述功能和规范
  2. 提供上下文 - 附带文档和示例
  3. 分步骤进行 - 逐步生成和验证
  4. 人工审查 - 检查质量和安全
  5. 迭代优化 - 持续改进代码
  6. 建立规范 - 形成团队标准流程

推荐学习路径

  1. 熟悉项目规范 - 阅读开发文档
  2. 掌握 Prompt 技巧 - 学习提问方式
  3. 实践小功能 - 从简单 CRUD 开始
  4. 逐步增加复杂度 - 尝试复杂业务
  5. 总结经验 - 建立个人最佳实践

相关文档