Skip to content

项目结构

gvt init 生成的项目采用严格分层架构,依赖单向流动:

请求 → router → middleware → handler → service → repository → database

生成目录

my-project/
├── backend/                      # Go 后端源码(Gin + GORM)
│   ├── cmd/server/main.go        # 服务入口
│   ├── config/config.go          # 环境变量配置
│   ├── database/db.go            # 数据库连接 + 自动迁移
│   ├── model/                    # 数据模型(auth/、user/)
│   ├── repository/user_repo.go   # CRUD 封装(GetBy 模式)
│   ├── service/user_service.go   # 业务逻辑
│   ├── handler/user_handler.go   # HTTP 处理器
│   ├── middleware/auth.go        # JWT 认证 + CORS
│   ├── router/router.go          # 路由注册
│   ├── pkg/
│   │   ├── response/response.go  # 统一响应格式
│   │   └── logger/logger.go      # Zap 日志封装
│   ├── setup/                    # DI 容器(sync.Once 懒加载)
│   └── STANDARD.md              # 后端开发规范文档
├── frontend/                     # 前端(Vue 3 / React)
│   ├── portal/                   #   Vue 3 Portal(若选择)
│   ├── admin/                    #   Vue 3 Admin(若选择)
│   └── react-app/                #   React 骨架(若选择)
├── .githooks/                    # Git 钩子
├── .opencode/                    # OpenCode 技能配置
├── .claude/                      # Claude Code 符号链接
├── .agents/                      # 通用 Agent 符号链接
├── scripts/
│   └── install-hooks.sh          # 钩子激活脚本
├── .gvt/
│   ├── hooks.toml                # 钩子检查配置文件
│   └── docker.toml               # [Docker] Docker 构建配置
├── docker/                       # [Docker] Docker 文件目录
├── buildkitd.toml                # [Docker] buildx 镜像加速配置
├── go.mod                        # Go 模块定义(根目录)
├── Makefile                      # 常用命令
└── README.md

[Docker] 标记的文件仅在选择 Docker 支持时生成。

后端分层职责

职责
handler参数绑定、调用 service、组装响应
service业务规则校验、跨模型协调
repository通用 GetBy 查询模式(IDs 数组优先 + 指针字段 + AND/OR)
setupsync.Once 懒加载单例,自动处理初始化顺序
pkg/response统一 JSON 响应 {code, message, data}
pkg/loggerZap 结构化日志(文件 JSON + 控制台彩色)

前端技术栈

选项生成方式覆盖层内容
Vue 3 Portal--template vue-tssrc/ 完整目录 + oxlint/oxfmt 配置
Vue 3 Admin同上同上 + 管理端布局骨架
React--template react-tssrc/ 基础骨架 + oxlint/oxfmt 配置

基于 MIT 协议开源