Reference
Module Development Rules
新增模块、改现有模块、跨模块修改的硬规则。非客户端成员能开发功能,但不能绕过模块边界。
三条规则
新增模块必须用模板
改现有模块先找模块边界
跨模块修改先做架构审核
破坏边界停止,找 owner
新增模块:必须使用模板
模板目录:
Assets/Editor/Prefab2Code/Scripts/ScriptTemplates/新增模块不要让 agent 从零手写 Context / View / Mediator / Command / Model / Service 骨架。必须先选模板,沿用项目生成结构。
现有模板速查
| 模板 | 适用场景 | 注意 |
|---|---|---|
StrangeIoc | 普通 StrangeIoC 模块。 | 优先用于标准模块骨架。 |
弹窗式StrangeIoc模板 | 弹窗 / 面板类模块。 | 需配合 UIUtil / PopUpManager。 |
ChildActivity | 活动子模块。 | 适合活动页内部子功能。 |
RecyclableScrollView | 可复用滚动列表。 | 适合列表型 UI。 |
游戏玩法开发模板 | 玩法扩展。 | 通常不是产品/后台第一批任务。 |
s级牌桌模板 | 牌桌相关模块。 | Red / owner 优先。 |
防暴力点击 | 点击节流 / 防连点。 | 可作为 Green lane 相似实现参考。 |
客户端本地数据记录 | 本地数据记录。 | 涉及存储和兼容时先确认。 |
改现有模块:先找模块边界
现有模块修改的默认原则是:改动局限在模块内。
模块边界检查:
1. 模块目录在哪里?例如 Hall/Login、Hall/Benefit、Hall/TalentHall。
2. 模块 Context 是哪个?例如 LoginContext 或某个 IStrangeContext。
3. View / Mediator / Command / Service / Model 是否都在模块目录内?
4. 事件是否只在模块内流转?
5. 是否需要改公共 Def、全局 Model、AppContext、GameContext?如果需要,先说明影响范围。
跨模块修改:必须审核架构影响
跨模块不是禁止,但必须先回答这些问题:
- 为什么当前模块内无法完成?
- 是否正在修改公共事件、全局 Model、CrossContextBridge、ModuleRegistry?
- 是否影响其他模块已有行为?
- 是否改变模块依赖方向?
- 是否可以通过已有事件 / Service / Model 扩展完成,而不是直接引用其他模块?
- 是否已有客户端 owner 确认?
车道映射
Green
- 现有模块内 1–4 个 C# 文件
- 不改 Context 或只读 Context
- 复用已有 UI / 点击绑定 / Service
Yellow
- 新增模块但使用模板
- 新增 Context binding
- 小范围跨模块事件 / Model
Red
- 不使用模板从零写模块骨架
- 修改 ModuleRegistry / AppContext 大范围绑定
- 跨模块直接引用造成架构反向依赖
Agent prompt:新增模块前
先不要修改代码。
我要新增一个 HappyMahjong 模块。请先分析应该使用哪个模板。
模板目录:Assets/Editor/Prefab2Code/Scripts/ScriptTemplates/
候选模板包括:StrangeIoc、弹窗式StrangeIoc模板、ChildActivity、RecyclableScrollView、游戏玩法开发模板、s级牌桌模板、防暴力点击、客户端本地数据记录。
请输出:
1. 这个需求是否真的需要新增模块;能否放进现有模块?
2. 如果需要新增模块,推荐哪个模板,为什么。
3. 模块应放在哪个目录。
4. 需要哪些 Context / View / Mediator / Command / Service / Model。
5. 是否需要 ModuleRegistry / AppContext / CrossContextBridge 改动。
6. 风险判断:是否涉及 Context binding / Prefab / Scene / 启动?是否需要客户端 owner 确认。
不要生成代码,不要修改文件。
Agent prompt:改现有模块前
先不要修改代码。
我要修改现有模块:{模块名或需求}。
请先定位模块边界:
1. 模块目录。
2. 模块 Context / IStrangeContext。
3. View / Mediator / Command / Service / Model 文件。
4. 当前需求是否能只在模块内完成。
5. 是否需要跨模块修改;如果需要,说明原因和架构风险。
6. 最小允许修改文件。
7. 禁止修改文件。
8. 风险判断:是否只涉及同模块 C# 小改,还是涉及启动 / 框架 / 大规模 Prefab / Scene。
所有结论必须附文件路径。不确定处标注“推测”。
课堂口令: 新增模块先模板;改旧模块先边界;跨模块先审核。