Skip to content

Commit 8d64a1d

Browse files
committed
docs+meta: codify namespace conventions and centralize world namespace bridge
1 parent ddf3708 commit 8d64a1d

7 files changed

Lines changed: 57 additions & 16 deletions

File tree

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- 故障排查(GUI/运行时常见问题):`docs/troubleshooting/`(GUI:`docs/troubleshooting/sandbox_gui.md`
1313

1414
- 文档组织与边界:`docs/handbook/DOCS_ORGANIZATION.md`
15+
- 代码约定(Namespace 等):`docs/handbook/CODING_CONVENTIONS.md`
1516
- 内核回归闭环(Headless 优先):`docs/handbook/CORE_REGRESSION.md`
1617
- 架构概览:`docs/architecture/README.md`
1718
- 愿景与设计原则:`docs/architecture/meta/vision.md`
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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+

include/genesis/runtime/Runtime.hpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@
1919
#include "genesis/runtime/RuntimeEvents.hpp"
2020
#include "genesis/runtime/SimulationService.hpp"
2121
#include "genesis/simulation/AgentApi.hpp"
22-
#include "genesis/simulation/Namespace.hpp"
23-
#include "genesis/agents/Namespace.hpp"
24-
#include "genesis/world/WorldDatabaseLoader.hpp"
25-
#include "genesis/world/WorldDatabaseSaver.hpp"
26-
#include "genesis/agents/Movement2D.hpp"
22+
#include "genesis/simulation/Namespace.hpp"
23+
#include "genesis/agents/Namespace.hpp"
24+
#include "genesis/telemetry/Namespace.hpp"
25+
#include "genesis/world/WorldDatabaseLoader.hpp"
26+
#include "genesis/world/WorldDatabaseSaver.hpp"
27+
#include "genesis/agents/Movement2D.hpp"
2728

2829
namespace genesis { namespace world { class WorldDatabase; } }
2930

include/genesis/runtime/SimulationSnapshot.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
#include <atomic>
55
#include <chrono>
66
#include <cstdint>
7-
#include <optional>
7+
#include <optional>
88
#include <utility>
99
#include <vector>
1010

1111
#include "genesis/runtime/RuntimeEvents.hpp"
12+
#include "genesis/telemetry/Namespace.hpp"
1213
#include "genesis/telemetry/TelemetryBuffer.hpp"
1314

1415
namespace Genesis::Runtime {

include/genesis/runtime/SnapshotDiff.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#pragma once
22

3-
#include <chrono>
4-
#include <cstdint>
3+
#include <chrono>
4+
#include <cstdint>
55
#include <optional>
66
#include <vector>
77

8+
#include "genesis/telemetry/Namespace.hpp"
89
#include "genesis/runtime/SimulationSnapshot.hpp"
910

1011
namespace Genesis::Runtime {

include/genesis/world/WorldDatabase.hpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <utility>
99
#include <vector>
1010

11+
#include "genesis/world/Namespace.hpp"
1112
#include "genesis/world/WorldTypes.hpp"
1213

1314
namespace genesis::world {
@@ -138,7 +139,3 @@ class InMemoryWorldDatabase final : public WorldDatabase {
138139
};
139140

140141
} // namespace genesis::world
141-
142-
namespace Genesis {
143-
namespace World = genesis::world;
144-
} // namespace Genesis

include/genesis/world/WorldTypes.hpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
#include <cstdint>
44

5+
#include "genesis/world/Namespace.hpp"
6+
57
namespace genesis::world {
68

79
// 资源类型:保留为运行时系统共享的最小枚举。
@@ -14,7 +16,3 @@ enum class ResourceType : std::uint8_t {
1416
};
1517

1618
} // namespace genesis::world
17-
18-
namespace Genesis {
19-
namespace World = genesis::world;
20-
} // namespace Genesis

0 commit comments

Comments
 (0)