当前企业级中后台开发面临两大核心挑战:传统单体架构难以扩展,微服务方案对中小团队过于复杂;同时Vue与React技术栈并存增加了项目统一管理难度。针对这些痛点,我们基于Go语言构建了支持双模部署的后端基座,配合三套差异化前端模板,推出开箱即用的全栈解决方案GoWind Admin。

本文将从架构设计到落地实践,全面解析这套脚手架的技术实现与应用价值。
后端采用Kratos微服务规范开发,创新实现单体与微服务双模适配。无论是独立二进制部署还是集群化微服务部署,都能满足不同规模业务需求。前端采用多包独立开发模式,三套UI方案共享同一套OpenAPI规范,确保权限体系与业务逻辑的一致性。
Golang、go-kratos、Wire、Ent ORM / Gorm、MySQL、Redis、DockerJWT 鉴权、Casbin /OPA / Zanzibar 权限控制、SSE 消息推送、Swagger 接口文档Vue3 + TypeScript + Vite + Ant Design Vue + Vben AdminVue3 + TypeScript + Vite + Element Plus(轻量纯净版)React19 + TypeScript + Vite + React Router + Zustand + Ant Design V6 + @ant-design/pro-components(无 UMI 框架)Kratos作为字节跳动开源微服务框架,提供标准化分层结构,严格遵循API层、Service业务层和Data数据层的开发规范。其内置的错误处理、日志追踪和配置管理能力,有效避免了代码腐烂问题。
通过四点关键改造实现双模无缝切换:
项目选用Ent ORM,其支持静态类型校验、自动化代码生成和数据表自动迁移,特别适合处理复杂数据表关联场景。同时封装了通用数据操作基类,内置分页查询、软删除等功能,大幅减少重复编码工作。
提供两种主流隔离方案:
tenant_id字段隔离数据,是项目的默认方案。基于Casbin实现精细化权限管控:
为满足不同团队需求,我们提供三套独立的前端模板,统一全局请求、鉴权和权限指令,后端无需额外适配。
基于Vben Admin二次封装,保留动态路由、权限菜单等核心功能,简化目录结构。适合中大型Vue中后台项目。
仅封装登录鉴权、基础请求等核心能力,结构简洁、上手门槛低,适合小型内部管理系统。
采用Vite + React19 + Zustand技术栈,手动封装ProTable等高阶组件,完全适配Ant Design V6全新API。
内置全套跨平台自动化脚本,覆盖三大操作系统,一键完成环境初始化、中间件部署和服务托管。脚本分为三大模块:
三套前端共享开箱即用功能:用户角色管理、组织架构、动态菜单、接口权限、数据字典、定时任务等。
基于长期开发经验,我们确立了四项核心设计原则:
scripts/env/install_unix_dev.shscripts/env/install_unix_prod.shscripts/env/install_windows_dev.ps1# 赋予脚本执行权限
chmod +x scripts/**/*.sh
# 开发环境(推荐)
./scripts/env/install_unix_dev.sh
./scripts/docker/libs_only.sh
gow run admin
# 生产环境
./scripts/env/install_unix_prod.sh
./scripts/docker/full_deploy.sh
# PM2 进程托管(生产进阶)
./scripts/deploy/pm2_service.sh
# 放行脚本策略(首次仅需执行一次)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser# 初始化环境
.scriptsenvinstall_windows_dev.ps1# 本地开发
.scriptsdockerlibs_only.ps1
gow run admin# 一键完整部署
.scriptsdockerfull_deploy.ps1
前端统一存放在frontend/admin目录:
pnpm dev,端口7000pnpm dev,端口3000pnpm dev:antd,端口5666# 安装依赖
pnpm install
# React版本
cd frontend/admin/react
pnpm dev
# Vue3 Element版本
cd frontend/admin/vue-element
pnpm dev
# Vue3 Vben版本
cd frontend/admin/vue-vben
pnpm dev:antd
APP_ROOT环境变量实现多项目隔离。GoWind Admin致力于解决全栈开发中的常见痛点,通过双模后端架构兼容不同规模需求,配合多套前端模板满足团队技术偏好。这套方案兼具Go语言的高性能优势与前端技术栈的自由选择权,适用于各类中后台项目开发。