依赖图

什么依赖什么,带入度计数,并显示树无法表达的循环。

1 个依赖图示例

前端包依赖关系

六个内部包和一个外部包,每个都带入度徽标,并暴露出一个循环。

树无法表达这个:设计系统有多个父节点,且两个包互相依赖。入度徽标显示依赖集中在哪里,回边就是被强调的循环。

在编辑器中打开

什么是依赖图?

依赖图是一张有向图:节点是模块、包、服务或任务,箭头从使用方指向被依赖方。与树不同,一个节点可以被多个节点依赖,也可能形成循环依赖;没有循环时它就是有向无环图(DAG)。

读图时看箭头方向和入度:被很多节点指向的模块改动影响面最大,形成回路的部分通常是需要拆解的问题。

什么时候用依赖图

  • 拆分单体或整理 monorepo,找出循环依赖和被过度依赖的核心包。
  • 评估升级某个库的影响范围,看有多少模块会受牵连。
  • 如果依赖关系严格是一对多的上下级,没有共享和循环,树形图更易读。

怎样画好一张依赖图

  1. 箭头方向全图保持一致,统一从依赖方指向被依赖方。
  2. 在节点上标注入度,或按入度调整节点大小,突出关键节点。
  3. 用醒目的颜色标出循环依赖,外部依赖用不同形状区分。
  4. 节点过多时按团队或领域分组,只展开当前讨论的那一组。