增加用户管理
This commit is contained in:
47
AGENTS.md
47
AGENTS.md
@@ -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. 调试
|
||||
|
||||
|
||||
Reference in New Issue
Block a user