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?如果需要,先说明影响范围。

跨模块修改:必须审核架构影响

跨模块不是禁止,但必须先回答这些问题:

车道映射

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。

所有结论必须附文件路径。不确定处标注“推测”。
课堂口令: 新增模块先模板;改旧模块先边界;跨模块先审核。