包含 VitePress 文档站完整源码及全新自定义首页设计: - 自定义首页组件 (Home.vue):Hero + 终端动效 + 核心能力 + 架构展示 + 快速开始 + CTA - 自定义 Layout.vue:首页/文档页布局切换 - 金铜色品牌主题样式 - 完整文档页面(指南、API、更新日志、演示、社区) - SEO 配置(sitemap、robots、meta 标签)
76 lines
2.8 KiB
Markdown
76 lines
2.8 KiB
Markdown
---
|
||
title: 项目结构说明 | MengStack目录规范详解 - MengStack官方文档
|
||
---
|
||
|
||
# 项目结构
|
||
|
||
```
|
||
mengstack/
|
||
├── cmd/
|
||
│ └── server/
|
||
│ └── main.go # 应用入口,Swagger 注解
|
||
├── configs/
|
||
│ └── config.yaml # 默认配置文件
|
||
├── docs/ # Swagger 自动生成文档
|
||
│ ├── docs.go
|
||
│ ├── swagger.json
|
||
│ └── swagger.yaml
|
||
├── internal/
|
||
│ ├── kernel/ # 第一层:零业务语义基础组件
|
||
│ │ └── response/ # 统一响应格式
|
||
│ ├── app/ # 第二层:应用基础设施
|
||
│ │ ├── cache/ # Redis 缓存模块
|
||
│ │ ├── database/ # PostgreSQL 数据库模块
|
||
│ │ ├── health/ # 健康检查
|
||
│ │ ├── middleware/ # 全局中间件(CORS、请求ID、日志)
|
||
│ │ └── app.go # fx 容器组装
|
||
│ ├── config/ # 配置加载(Viper)
|
||
│ ├── logger/ # 日志初始化(Zap)
|
||
│ └── modules/ # 第三层:业务模块
|
||
│ └── auth/ # 认证模块
|
||
│ ├── domain/ # 领域层:实体、值对象、接口定义
|
||
│ ├── application/ # 应用层:业务逻辑编排
|
||
│ ├── infrastructure/ # 基础设施层:GORM/Redis 实现
|
||
│ └── interfaces/ # 接口层:HTTP Handler + 路由
|
||
├── migrations/ # 数据库迁移文件
|
||
├── test/ # 集成测试
|
||
├── docker-compose.yml # Docker 编排
|
||
├── Makefile # 构建命令
|
||
├── AGENTS.md # AI 辅助开发指南
|
||
└── go.mod # Go 模块定义
|
||
```
|
||
|
||
## 目录职责
|
||
|
||
### `cmd/server/`
|
||
|
||
应用入口,仅负责组装和启动。包含 Swagger 全局注解。
|
||
|
||
### `internal/kernel/`
|
||
|
||
**零业务语义**的基础组件。不包含任何业务概念,只提供通用工具:
|
||
|
||
- `response/` — 统一响应格式 `{code, message, data, trace_id}`
|
||
- 后续可扩展:`paginator/`、`errors/` 等
|
||
|
||
### `internal/app/`
|
||
|
||
应用基础设施,连接 kernel 和外部世界:
|
||
|
||
- `database/` — GORM + PostgreSQL 初始化和生命周期
|
||
- `cache/` — Redis 客户端初始化和生命周期
|
||
- `middleware/` — 请求 ID、请求日志、CORS
|
||
- `health/` — 健康检查端点
|
||
|
||
### `internal/modules/`
|
||
|
||
业务模块目录,每个模块独立自包含,遵循四层模式。
|
||
|
||
### `configs/`
|
||
|
||
默认配置文件,运行时可通过环境变量覆盖。
|
||
|
||
### `migrations/`
|
||
|
||
数据库迁移文件,使用 golang-migrate 管理。
|