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 的重复工作压缩到一个可控范围。

相关推荐
维天说4 分钟前
Agent会听人话,反而更难管
java·开发语言·人工智能
SamDeepThinking4 分钟前
if嵌套最好控制在3层以内
java·后端·程序员
苏渡苇7 分钟前
Spring Insight 里上报 Span 为什么用 JDK HttpClient 而不是 RestTemplate
java·后端·spring·spring cloud·springboot·性能监控
tonydf8 分钟前
AI驱动历史项目安全审查
后端·ai编程
会飞的拖把18 分钟前
Python 面向对象编程详解:从类与对象到动态属性方法
开发语言·python
她的男孩24 分钟前
同一个接口,为什么销售只看到自己的订单?我拆了 681 行数据权限拦截器的源码
java·后端·架构
元界metalite26 分钟前
SpringBoot接口通用响应对象设计 - 一个 Resp 管理五种责任
后端
对象存储与RustFS29 分钟前
把 RustFS 跑在 Kubernetes 上:官方 Helm Chart 从单机到分布式
后端·rust·开源
SimonKing1 小时前
将cURL 命令直接变成 Java 代码?用JQuick-Curl搞起来
java·后端·程序员
大牧师1 小时前
Nest.js 微服务入门教程
开发语言·javascript·后端·微服务·node.js·nest.js·nest