|
| 1 | +# 代码约定(Coding Conventions) |
| 2 | + |
| 3 | +本文档用于固化“新增代码默认遵循”的工程约定,避免风格分裂导致的维护成本与重构摩擦。 |
| 4 | + |
| 5 | +## 1) 命名空间(Namespace) |
| 6 | + |
| 7 | +目标:对外/跨模块引用统一使用 `Genesis::` 根命名空间;内部实现仍允许保持 `genesis::`,并以渐进方式迁移。 |
| 8 | + |
| 9 | +### 1.1 规则(新增代码必须遵守) |
| 10 | +- **跨模块引用优先使用 `Genesis::`**(而不是 `genesis::`)。 |
| 11 | +- **使用 `Genesis::X` 前必须包含对应模块的 `genesis/<module>/Namespace.hpp`**(避免靠“碰巧某个头文件定义了别名”)。 |
| 12 | +- **不要新增新的全局 alias 聚合头**(避免与已有 `Namespace.hpp` 发生冲突)。 |
| 13 | + |
| 14 | +示例(推荐写法): |
| 15 | +```cpp |
| 16 | +#include "genesis/world/Namespace.hpp" |
| 17 | +#include "genesis/world/WorldTypes.hpp" |
| 18 | + |
| 19 | +Genesis::World::MapId map = 1; |
| 20 | +``` |
| 21 | + |
| 22 | +Agents(带 Components 子命名空间): |
| 23 | +```cpp |
| 24 | +#include "genesis/agents/Namespace.hpp" |
| 25 | +#include "genesis/agents/Needs.hpp" |
| 26 | + |
| 27 | +Genesis::Agents::NeedType need = Genesis::Agents::NeedType::Hunger; |
| 28 | +``` |
| 29 | + |
| 30 | +### 1.2 可用的 Namespace 过渡头 |
| 31 | +- `include/genesis/agents/Namespace.hpp` → `Genesis::Agents`(含 `Genesis::Agents::Components`) |
| 32 | +- `include/genesis/base/Namespace.hpp` → `Genesis::Base` |
| 33 | +- `include/genesis/core/Namespace.hpp` → `Genesis::Core` |
| 34 | +- `include/genesis/diagnostics/Namespace.hpp` → `Genesis::Diagnostics` |
| 35 | +- `include/genesis/messaging/Namespace.hpp` → `Genesis::Messaging` |
| 36 | +- `include/genesis/simulation/Namespace.hpp` → `Genesis::Simulation` |
| 37 | +- `include/genesis/telemetry/Namespace.hpp` → `Genesis::Telemetry` |
| 38 | +- `include/genesis/world/Namespace.hpp` → `Genesis::World` |
| 39 | +- `include/genesis/worldgen/Namespace.hpp` → `Genesis::Worldgen` |
| 40 | + |
| 41 | +> 迁移策略与阶段计划见:`docs/architecture/proposals/meta/namespace-strategy.md`。 |
| 42 | +
|
0 commit comments