Grafo de dependencias

Qué depende de qué, con el número de dependientes y los ciclos que un árbol no muestra.

1 ejemplo de grafo de dependencias

Dependencias de paquetes frontend

Seis paquetes internos y uno externo, con el número de dependientes en cada uno y un ciclo al descubierto.

Un árbol no podría mostrar esto: el sistema de diseño tiene varios padres, y dos paquetes dependen uno del otro. Las insignias muestran dónde se concentran las dependencias, y la arista de vuelta es el ciclo acentuado.

Abrir en el editor

¿Qué es un grafo de dependencias?

Un grafo de dependencias es un grafo dirigido en el que cada flecha significa «depende de». A diferencia de un árbol, un nodo puede tener varios padres y pueden aparecer ciclos, que en software suelen indicar un problema de diseño.

Se lee siguiendo las flechas desde quien depende hacia quien es dependido. Los nodos con muchas flechas entrantes son críticos, porque un cambio en ellos afecta a muchos, y los ciclos se señalan porque impiden compilar o desplegar por separado.

Cuándo usar un grafo de dependencias

  • Para auditar las dependencias de paquetes de un monorepo frontend y localizar ciclos entre módulos.
  • Para ordenar las tareas de una migración y saber qué hay que mover primero.
  • Si cada elemento depende de un solo padre, un diagrama de árbol es más legible.

Cómo hacer un buen grafo de dependencias

  1. Mantén un sentido único de lectura: los módulos base abajo o a la derecha, los consumidores arriba o a la izquierda.
  2. Muestra junto a cada nodo el número de dependientes para que lo crítico salte a la vista.
  3. Resalta los ciclos en rojo; son lo primero que alguien busca en este diagrama.
  4. Filtra las dependencias externas o triviales si no aportan; un grafo con todo es una maraña.