bindbox-game/docs/项目框架/ALIGNMENT_项目框架.md
邹方成 1ab39d2f5a
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 25s
refactor: 重构项目结构并重命名模块
feat(admin): 新增工会管理功能
feat(activity): 添加活动管理相关服务
feat(user): 实现用户道具卡和积分管理
feat(guild): 新增工会成员管理功能

fix: 修复数据库连接配置
fix: 修正jwtoken导入路径
fix: 解决端口冲突问题

style: 统一代码格式和注释风格
style: 更新项目常量命名

docs: 添加项目框架和开发规范文档
docs: 更新接口文档注释

chore: 移除无用代码和文件
chore: 更新Makefile和配置文件
chore: 清理日志文件

test: 添加道具卡测试脚本
2025-11-14 21:10:00 +08:00

48 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目和任务特性规范
## 原始需求
梳理项目框架,为后续开发做准备。
## 边界确认
- **目标**: 分析现有项目结构、技术栈、架构模式、依赖关系,并输出分析报告。
- **范围**: 仅分析现有代码库,不涉及运行时环境或外部系统。
## 需求理解
该项目是一个Go语言编写的后端服务命名为 `bindbox_game`,可能是一个“盲盒游戏”相关的应用。
从目录结构来看,项目遵循了一定的分层架构或整洁架构思想,主要模块包括:
- `cmd/`: 存放可执行命令,如代码生成器 (`gormgen`, `handlergen`)。
- `configs/`: 配置文件,区分不同环境 (`dev`, `fat`, `pro`, `uat`)。
- `deploy/`: 部署相关文件,如 `docker-compose.yaml`
- `docs/`: 项目文档,包括 `swagger` 定义和一些说明文档。
- `internal/`: 项目核心业务逻辑,这是分析的重点。
- `scripts/`: 辅助脚本。
- `static/`: 静态资源。
`internal/` 目录下的结构进一步体现了分层设计:
- `api/`: API接口定义按模块划分`admin`)。
- `repository/`: 数据仓库层,负责与数据库交互,使用了 `gorm`(从 `gormgen` 推断)和 `mysql`
- `service/``services/`: 服务层,处理核心业务逻辑。
- `router/`: 路由定义和中间件。
- `pkg/`: 可重用的公共库或工具类,如日志、错误处理、加解密等。
- `code/`: 业务状态码定义。
- `metrics/`: 监控指标。
- `alert/`: 告警。
技术栈和依赖推断:
- **语言**: Go
- **Web框架**: 可能是 `Gin` 或类似框架(需要查看 `go.mod` 确认)。
- **ORM**: `GORM`(从 `gormgen``internal/repository/mysql` 目录推断)。
- **数据库**: `MySQL`
- **文档**: `Swagger`
- **部署**: `Docker`
## 疑问澄清
- Web框架具体是哪个 **Gin**
- 项目依赖了哪些主要的第三方库? **GORM, Viper, Zap, Gin**
- `service``services` 两个目录的区别是什么? `service` 目录为空,`services` 目录用于存放按功能模块组织的业务逻辑,但目前未被积极使用。
- `proposal` 目录的作用是什么? 定义了用于告警、日志等目的的数据结构和处理器。
接下来,我将通过分析 `go.mod` 文件来解答这些疑问。