模块与扩展架构
Proto UI 的模块边界、SPI 与扩展结构
这篇文章要回答什么?
Section titled “这篇文章要回答什么?”写作提示:
- Proto UI 的各层模块在工程上如何分布。
- 哪些部分属于稳定 API,哪些部分更接近 SPI 或内部结构。
- 扩展包与模块作者应该从哪里接入系统。
这篇主要给谁看?
Section titled “这篇主要给谁看?”写作提示:
- 给需要理解仓库分层与包职责的人。
- 给研究运行时与扩展边界的读者。
- 给未来可能编写扩展模块的人,而不是普通使用者。
需要先建立哪些分层视角?
Section titled “需要先建立哪些分层视角?”写作提示:
- 区分协议核心、运行时承载、适配层、宿主能力层、参考原型库。
- 说明“代码包结构”不等于“文档章节结构”,但两者之间存在映射关系。
模块边界要讲什么?
Section titled “模块边界要讲什么?”写作提示:
- 哪些层负责定义语义,哪些层负责承载语义,哪些层负责对接宿主。
- 哪些依赖方向是被鼓励的,哪些跨层耦合是需要避免的。
扩展边界要讲什么?
Section titled “扩展边界要讲什么?”写作提示:
- 哪些点可以被视为扩展点。
- 哪些能力只是内部实现细节,不应被外部模块依赖。
- API 与 SPI 的稳定性预期应如何区分。
这篇不打算展开什么?
Section titled “这篇不打算展开什么?”写作提示:
- 不在这里写贡献流程。
- 不在这里展开适配器实现手册。
- 不在这里替代具体包的 API 文档。
这篇要把读者带到哪里?
Section titled “这篇要把读者带到哪里?”写作提示:
- 如果读者要理解系统承载层,前往
Runtime 架构。 - 如果读者要理解原型表达层,前往
Prototype API。 - 如果读者要理解宿主对接边界,前往
Host Caps。