Go 后台管理系统实战:Cursor + GoFrame + Vue3 生成 CRUD 模块的完整流程

前言

最近在做一个 Go 后台管理系统迁移,把原来 PHP(ThinkPHP/Laravel)里常见的 CRUD、RBAC、菜单权限搬到 GoFrame + Vue3 技术栈。本文不讲概念,直接用一个客户管理模块演示:如何从数据表开始,配合 Cursor / Claude Code 生成后台模块初稿,再人工检查权限和字段风险。

一、准备数据表

示例表结构如下,包含客户名称、联系方式、等级、负责人和状态字段:

sql 复制代码
CREATE TABLE `crm_customer` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(120) NOT NULL COMMENT '客户名称',
  `mobile` varchar(30) DEFAULT '' COMMENT '联系电话',
  `level` tinyint NOT NULL DEFAULT 1 COMMENT '客户等级',
  `owner_id` bigint unsigned NOT NULL DEFAULT 0 COMMENT '负责人',
  `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态',
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_owner_status` (`owner_id`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

二、为什么不能直接让 AI 自由生成

很多人第一次用 AI 写后台,会直接输入"帮我生成客户管理 CRUD"。这样确实能得到代码,但常见问题也很明显:

  • 目录结构和项目现有规范不一致;
  • 接口返回格式不统一;
  • 字段名和前端表单字段对不上;
  • 只生成按钮权限,没有接口层权限校验;
  • AI 会补一些数据库里不存在的字段。

三、建议的项目目录

在 GoFrame 项目里,我更建议先固定目录,再让 AI 按目录补文件:

text 复制代码
internal/
  controller/customer.go
  logic/customer.go
  model/customer.go
  service/customer.go
resource/
  menu/customer.yaml
web/
  views/customer/index.vue

四、可复用的 AI 提示词

下面是一段更稳定的提示词,比"帮我写 CRUD"效果好很多:

text 复制代码
根据 crm_customer 表结构,按当前 GoFrame 后台项目规范生成客户管理模块:
1. 分页列表、详情、新增、编辑、删除接口;
2. 前端 Vue3 列表页和表单字段;
3. RBAC 菜单权限:查看、新增、编辑、删除;
4. 不要发明数据库不存在的字段;
5. 输出需要人工检查的安全风险点。

五、工时对比

开发方式 单模块耗时 主要成本
Gin 手写 3~4 小时 路由、DTO、分页、权限都要手动处理
GoFrame 手写 约 2 小时 分层清晰,但重复文件仍然较多
GoFrame + 代码生成 + AI 45~70 分钟 主要时间用于字段和权限审核

六、以 XYGo Admin 作为案例

我这次参考的案例是 XYGo Admin,一个 GoFrame v2 + Vue3 + TypeScript + Element Plus 的后台管理项目。它内置代码生成器、RBAC 权限、菜单管理,并提供 AI Skills,用来约束 Cursor / Claude Code 这类工具按项目规范生成代码。

这里重点不是某个项目本身,而是一个经验:后台系统如果有明确目录、权限模型和生成规范,AI 生成的代码才更容易进入真实项目。

七、发布前必须人工检查

  1. 列表查询条件是否命中索引;
  2. 更新接口是否允许修改 owner_id、status 等敏感字段;
  3. 删除操作是否需要业务校验或软删除;
  4. 菜单按钮权限和接口权限是否同时存在;
  5. 前端枚举、默认值、必填规则是否符合业务。

总结

Cursor / Claude Code 写 Go 后台不是魔法。真正能提升效率的,是"代码生成器 + 项目规范 + AI Skills + 人工审查"这套流程。没有规范时,AI 只是更快地产生不一致;有规范时,它能把标准 CRUD 的重复工作压缩到一个可控范围。

相关推荐
程序喵大人17 小时前
【C++进阶】STL算法与函数对象 - 09 函数对象保存状态并复用规则
开发语言·c++·算法·stl·函数对象
桦说编程1 天前
并发编程中的等待-通知模式:从 wait/notify 到 Guava Monitor
后端
hsjiasb1 天前
FreeRTOS学习(二十七)——任务栈与栈溢出检测
开发语言·stm32·学习·学习笔记·freertos
丰锋ff1 天前
3.1 Qt事件之事件处理器
开发语言·qt
多弗朗皮卡丘1 天前
C语言梦开始的地方7:函数
c语言·开发语言
月华路1 天前
G1 垃圾回收:脏卡队列、记忆集与并发精化线程机制
java·开发语言
用户938515635071 天前
工厂模式与 Nest.js 核心思想 —— 从蜜雪冰城到企业级架构
后端·设计模式·nestjs
用户938515635071 天前
实战 Todo CRUD —— 从路由到异常,手写一个完整模块
后端·typescript·nestjs
gugucoding1 天前
47. 【Java】Java内存模型(JMM)与可见性
java·开发语言
m0_380743871 天前
从零调用 Claude 教程
开发语言·python·node.js