枢纽模块(Hub Module)
在模块依赖图中,入度(被引用数)或扇入(import 来源数)显著高于其他节点的模块。是依赖网络的高风险单点,修改会级联影响所有依赖方。需区分于 God Module——枢纽模块做路由聚合,God Module 混入业务逻辑。
定义
枢纽模块(Hub Module)是软件依赖图中,入度(in-degree,被其他模块引用的次数)或扇入(fan-in,import 来源数量)显著高于平均水平的模块节点。
判断标准
- 扇入 > 20:开始具有枢纽特征,需关注修改影响范围
- 扇入 > 40:高度枢纽,需评估是否存在 God Module 反模式
枢纽模块 vs God Module 的核心区分:
| 枢纽模块 | God Module | |
|---|---|---|
| 作用 | 路由聚合、入口收敛 | 混入业务逻辑、承担过多职责 |
| 问题 | 修改影响范围大 | 违反单一职责,难以测试 |
| 处理 | 加稳定抽象层隔离 | 拆分职责 |
典型案例
vercel/ai SDK 的 packages/ai/src/generate-text/generate-text.ts:约 40 个 import 源,涵盖 @ai-sdk/provider、@ai-sdk/provider-utils、../prompt/ 下 8 个模块、内部 16 个同层模块。这是刻意的模块聚合点(Facade 内部),不是 God Module。
风险与应对
- 风险:测试不足会扩大缺陷半径;接口变更的影响面难以评估
- 应对:在枢纽模块入口处加稳定的抽象接口;不轻易拆散枢纽,拆分通常会引入更复杂的问题
- 可替换性:低——枢纽模块通常是框架契约核心