增加用户管理

This commit is contained in:
wtz
2026-02-20 23:39:49 +08:00
parent a272dad5f1
commit af3b805dbf
18 changed files with 1493 additions and 53 deletions

View File

@@ -23,29 +23,24 @@ doudizhu-server/
## 2. 构建与运行命令
```bash
# 本地开发
# 本地开发需先启动Redis
docker run -d --name redis -p 6379:6379 redis:7-alpine
cd doudizhu-server/app && go mod tidy && go run ./cmd
# Docker部署
cd doudizhu-server && docker compose up -d --build
# 代码格式化
# 代码格式化自动格式化所有Go文件
gofmt -w ./app
# 静态检查
go vet ./app/...
# 运行所有测试
go test ./app/...
# 运行单个包测试
go test ./app/internal/game/...
# 运行单个测试
go test ./app/internal/game/... -run TestCardType
# 带覆盖率
go test ./app/... -cover
# 测试(当前项目暂无测试文件,以下为参考命令)
# go test ./app/...
# go test ./app/internal/game/...
# go test ./app/internal/game/... -run TestCardType
# go test ./app/... -cover
```
## 3. Go代码风格规范
@@ -114,6 +109,29 @@ func (gm *GameManager) CreateRoom(...) {
}
```
### 函数长度
- **禁止超过150行**不宜超过50行
- 保持函数单一职责,提高可读性和可维护性
### 代码优雅性
1. **空行规范**:不同逻辑块之间空一行
2. **运算符空格**:双目运算符(`+`, `=`, `==` 等)两端必须加空格
3. **禁止多行合并**:禁止使用分号将多行代码合并到一行
### 介词命名规范(用于函数名)
| 介词 | 用法 |
| ------ | -------------------------------------------------------------------- |
| by | 表示动作的执行者或方式,如 `formatByLocale``calculateByDate` |
| from | 表示数据来源、起点或类型转换源,如 `parseFromJson` |
| to | 指明目标位置、接收方或变换终点,如 `sendToServer``uploadToCloud` |
| with | 说明附加参数或属性,如 `buildWithOptions``createWithDefaults` |
| in | 描述在某个上下文/环境中执行的动作,如 `runInBackground` |
| on | 与事件相关的处理器或触发点,如 `handleOnClick``listenOnChange` |
| for | 指定目标受众、用途或适用范围,如 `renderForAdmin``queryForUser` |
## 4. HTTP API响应格式
```go
@@ -138,7 +156,8 @@ type ApiResponse struct {
2. **后端API路由必须在 `/api` 下**
3. **WebSocket路径**`/api/ws?roomId=xxx&playerId=xxx`
4. **前端不使用npm/react**采用HTML+CSS+JS
5. **JSON字段用下划线命名**,如 `room_id`,但尽量用单词
5. **JSON字段用camelCase命名**,如 `roomId``playerId``cardCount`
6. **Go版本**Go 1.21
## 7. 调试