事件与生命周期¶
事件和生命周期阶段应服务于明确的模块协作,不应替代所有函数调用,也不应依赖偶然的注册顺序。
事件¶
事件适合表达“某件事发生了”,不适合替代所有函数调用。
- 一个模块需要通知多个监听者时,使用事件。
- 调用者需要明确知道执行结果时,使用命令、查询或普通方法。
- 事件 payload 应使用稳定字段,不要把临时 UI 节点、场景对象或项目局部状态塞进通用事件。
事件监听要有明确 owner。节点或短生命周期对象退出时,应取消监听或让框架通过 owner 清理。
生命周期¶
init()、async_init() 和 ready() 中都应保持防御式依赖读取。模块初始化顺序不应依赖偶然的注册顺序。
需要跨模块检查时,优先使用依赖声明和 GFArchitecture.get_dependency_diagnostics()。诊断只报告缺失依赖,不自动注册模块。
异步初始化不要无限等待外部流程。Installer 或模块需要等待外部资源时,应有项目层超时和失败策略。