# 规范-项目目录与编码标准 > **位置**: `docs/开发规范/规范-项目目录与编码标准.md` > **版本**: v1.0 > **日期**: 2026-07-08 > **关联**: AGENTS.md --- ## 1. 项目目录结构 ``` lawless/ ├── docs/ # 📁 全部文档 │ ├── 设计文档/ (GDD) # 游戏设计文档 — 策划产出 │ ├── 需求文档/ (PRD) # 产品需求文档 — 产品产出 │ ├── 技术文档/ (TDD) # 技术设计文档 — 技术产出 │ ├── 开发规范/ # 本目录 │ ├── 美术文档/ # UI规范、原画需求、动效说明 │ ├── 运营文档/ # 活动策划、数据分析、GM手册 │ └── 协议文档/ # API/Protobuf/OpenAPI │ ├── client/ # 📁 客户端(Cocos Creator 3.8.8) │ ├── assets/ │ │ ├── scripts/ # TypeScript 脚本 │ │ │ ├── data/ # 数据模型/配置表/常量 │ │ │ ├── systems/ # 核心系统(能量/时间/网络/战斗) │ │ │ ├── app/ # 应用状态/业务逻辑 │ │ │ ├── ui/ # UI 组件 │ │ │ │ ├── scenes/ # 场景控制器(登录/选角/主界面) │ │ │ │ ├── screens/ # 功能界面(战斗/背包/设置) │ │ │ │ ├── components/ # 可复用 UI 组件 │ │ │ │ └── common/ # UI 工具类(SceneUI 等) │ │ │ └── GameManager.ts # 游戏主管理器 │ │ ├── scenes/ # Cocos 场景文件(.scene) │ │ ├── resources/ # 静态资源 │ │ │ ├── prefabs/ # 预制体 │ │ │ ├── textures/ # 纹理/精灵 │ │ │ ├── animations/ # 动画/Spine │ │ │ └── fonts/ # 字体 │ │ └── bundles/ # Asset Bundle(热更) │ ├── build/ # 构建输出 │ └── project.json │ ├── server/ # 📁 服务端(Go + Nakama) │ ├── src/ │ │ ├── main.go # 入口 │ │ ├── handlers/ # HTTP/gRPC 处理器 │ │ ├── services/ # 业务服务层 │ │ ├── models/ # 数据模型 │ │ ├── repositories/ # 数据访问层(DAO) │ │ ├── match/ # Realtime Match 逻辑(AOI/位置同步) │ │ ├── rpc/ # Nakama RPC 实现 │ │ └── middleware/ # 中间件(认证/限流/日志/异常恢复) │ ├── configs/ # 服务端配置模板 │ ├── migrations/ # 数据库迁移脚本 │ └── Makefile │ ├── api/ # 📁 协议定义 │ ├── proto/ │ │ └── honghuang.proto # Protobuf 定义 │ └── openapi.yaml # OpenAPI 3.0 规范 │ ├── database/ # 📁 数据库 │ ├── migrations/ # 迁移脚本(up/down) │ ├── seeds/ # 种子数据 │ └── schemas/ # 表结构文档 │ ├── configs/ # 📁 配置中心模板(Nacos) │ └── nacos/ │ ├── global.yaml │ ├── combat.yaml │ ├── economy.yaml │ ├── map.yaml │ ├── event.yaml │ └── cultivation.yaml │ ├── tools/ # 📁 工具脚本 │ └── scripts/ │ ├── generate_proto.sh # 生成协议代码 │ ├── build_client.sh # 客户端构建 │ └── build_server.sh # 服务端构建 │ ├── tests/ # 📁 测试 │ ├── unit/ # 单元测试 │ ├── integration/ # 集成测试 │ └── e2e/ # 端到端测试 │ ├── docker/ # 📁 Docker 配置 │ ├── Dockerfile.client │ ├── Dockerfile.server │ └── docker-compose.yml │ ├── AGENTS.md # 项目强约束 ├── README.md # 项目说明 └── CHANGELOG.md # 版本变更日志 ``` ### 1.1 目录禁止行为 - ❌ 在根目录堆放零散文件(必须放入对应子目录) - ❌ 把服务端代码放在 `client/` 下,反之亦然 - ❌ 用中文或特殊字符命名代码文件/目录(仅限文档可用中文名) - ❌ 删除或重命名已有标准目录 --- ## 2. 文档编写标准 ### 2.1 元信息头部(必须) ```markdown # 标题 > **文档类型**: 游戏设计文档(GDD) / 产品需求文档(PRD) / 技术设计文档(TDD) > **版本**: vX.Y > **日期**: YYYY-MM-DD > **关联文档**: [列出相关的 GDD/PRD/TDD 编号] > **作者**: [agent 标识] --- ## 已确认决策记录 | # | 决策 | 来源 | |---|------|------| ## 待确认事项 | # | 问题 | 状态 | |---|------|------| ## 正文... --- ## 版本记录 - **vX.Y**(YYYY-MM-DD): [变更摘要] ``` ### 2.2 内容规范 - Markdown 格式,UTF-8 编码 - 一级标题 = 文档标题;二级 = 章节;三级 = 小节 - 表格用于枚举、对照、参数表 - 决策用 `✅N`,待确认用 `❓N` - 所有数值必须标注来源(如"来源: GDD-21 §3.1") - 禁止 TODO/FIXME 残留(要么解决,要么列入待确认表) --- ## 3. 代码编写标准 ### 3.1 文件头注释(必须) ```typescript /** * @file GameManager.ts * @brief 游戏主管理器 — 管理游戏状态、界面切换、数据流 * @author [agent标识] * @date 2026-07-08 * @sync GDD-02 ✅158, GDD-23 ✅159 * @version 2.0 */ ``` ### 3.2 TypeScript 规范 ```typescript // ✅ 正确:显式类型 + 常量提取 + 注释来源 const ENERGY_REGEN_SECLUSION_COEFFICIENT = 2.25; // GDD-23 ✅159 四档恢复: 闭关 interface CharacterData { energyCurrent: number; // 主动资源 (✅158) energyCap: number; // 成长进度 (✅158) } // ❌ 错误:魔法数字 + 无类型 + 无注释 const x = 2.25; let y: any; ``` | 规则 | 说明 | |------|------| | `"strict": true` | 严格模式,禁止隐式 any | | 显式返回类型 | 函数必须声明返回类型 | | 禁止 `any` | 除非 interfacing with JS 库 | | PascalCase 类名 | `class EnergySystem` | | camelCase 函数/变量 | `calculateRegenCoefficient` | | UPPER_SNAKE_CASE 常量 | `MAX_INVENTORY_SLOTS` | ### 3.3 Go 规范 - 遵循 `gofmt` 格式 - 导出函数必须注释(`// CalculateDamage ...`) - 错误处理:显式检查 `if err != nil`,禁止忽略错误 - 数据库查询使用参数化查询(防 SQL 注入) ### 3.4 禁止行为 - ❌ 魔法数字(无来源注释的裸数字) - ❌ 硬编码配置(所有可调参数走 Nacos/配置文件) - ❌ 硬编码用户可见文本(走 i18n 本地化表) - ❌ `console.log` 残留(用分级日志:debug/info/warn/error) - ❌ 注释掉的代码块(要么删除,要么说明原因) --- ## 4. 美术/UI 标准 ### 4.1 资源命名 ``` [类型]_[功能]_[状态]_[尺寸].[ext] btn_login_normal_120x60.png icon_energy_fill_32x32.png bg_main_title_1920x1080.jpg ``` ### 4.2 UI 设计文档必须包含 - 界面层级结构图(树状) - 各元素尺寸、位置、颜色、字体 - 交互流程图(点击后的状态变化) - 与代码的对接说明(节点命名、事件绑定) --- ## 5. 依赖管理 | 规则 | 说明 | |------|------| | 锁定版本 | `package-lock.json` / `go.mod` + `go.sum` | | 安全审查 | 新增依赖查 CVE 漏洞库 | | 禁止废弃依赖 | last update > 2 年 的不引入 | | 定期扫描 | 每月运行 `npm audit` / `govulncheck` | --- ## 6. 测试标准 | 测试类型 | 覆盖要求 | 文件位置 | |----------|----------|----------| | 单元测试 | 核心业务逻辑(能量/战斗/经济) | `tests/unit/` 或 `server/src/xxx_test.go` | | 集成测试 | 系统间交互(登录→战斗→结算) | `tests/integration/` | | 端到端测试 | 完整用户流程 | `tests/e2e/` | | 性能测试 | 战斗并发/API 压测 | `tests/perf/` | --- ## 7. 版本记录 - **v1.0**(2026-07-08): 初始版本,覆盖目录结构、文档标准、代码规范、美术标准、依赖管理、测试标准