Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 25s
feat(admin): 新增工会管理功能 feat(activity): 添加活动管理相关服务 feat(user): 实现用户道具卡和积分管理 feat(guild): 新增工会成员管理功能 fix: 修复数据库连接配置 fix: 修正jwtoken导入路径 fix: 解决端口冲突问题 style: 统一代码格式和注释风格 style: 更新项目常量命名 docs: 添加项目框架和开发规范文档 docs: 更新接口文档注释 chore: 移除无用代码和文件 chore: 更新Makefile和配置文件 chore: 清理日志文件 test: 添加道具卡测试脚本
48 lines
2.3 KiB
Markdown
48 lines
2.3 KiB
Markdown
|
||
# 项目和任务特性规范
|
||
|
||
## 原始需求
|
||
梳理项目框架,为后续开发做准备。
|
||
|
||
## 边界确认
|
||
- **目标**: 分析现有项目结构、技术栈、架构模式、依赖关系,并输出分析报告。
|
||
- **范围**: 仅分析现有代码库,不涉及运行时环境或外部系统。
|
||
|
||
## 需求理解
|
||
该项目是一个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` 文件来解答这些疑问。
|