Como detectar visualmente importaciones cíclicas entre nuestras aplicaciones django
En django se pretende que cada aplicación sea independiente, cada aplicación encapsule una funcionalidad. Esto normalmente es una utopía y terminamos teniendo en nuestro proyecto un conjunto de aplicaciones genéricas e independientes
y otro conjunto de aplicaciones que dependen unas de otras
El problema viene cuando este segundo conjunto de aplicaciones no tienen una jerarquía clara, es decir si la aplicación A importa a una aplicación B; la aplicación B no debería de importar a la aplicación A. Esto es fácil decirlo pero cuando el tamaño de nuestro proyecto empieza a crecer cada vez es más difícil y más difícil aún de detectarlo.
Con django-detect-cyclic se pretende que esta detección sea realmente sencilla. Tras instalarlo solo tendremos que acceder a un wizard instalado en la administración, y tras determinar una serie de parámetros (vía formulario, todos con configuración por defecto) se nos generará un grafo con las dependencias entre las aplicaciones, como los que podemos ver en las dos siguientes imágenes.
Wizard con grafo generado en la parte superior
Ejemplo de grafo, seleccionando la opción muestra módulos
Leyenda:
- Los nodos son las aplicaciones, o los módulos de las aplicaciones (si tu usas la opcion “Muestra los modulos”)
- Una arista significa que el nodo fuente importa al nodo destino
- Todas las aristas que pertenecen a un ciclo tienen el mismo color y su etiqueta contiene “Ciclo X”
- Las etiquetas de las aristas contienen el peso (número de importaciones) entre parentesis
- Si usas la opcion “Muestra los modulos” cada nodo tendrá un color de fondo, que representará a la aplicación que pertenezca
- Si la arista está punteada, quiere decr que todos las importaciones entre esos dos nodos están dentro de alguna función
Todo esto mismo se puede hacer mendiante línea de comandos
Trabajo realizado durante la pi week
Related Posts:
- How to integrate forms in the Django admin site? django-form-admin¿Cómo integrar formularios en la administración de Django? django-form-admin
- A simple and impossible query in djangoUna simple e imposible consulta en django
- Inline Editing and translating in DjangoEditando y traduciendo inline en Django
Deja un comentario Cancelar respuesta
Categorías
- comunicación (2)
- contribuciones (9)
- django (5)
- Eventos (11)
- python (5)
- tamgrambpm (1)
- uniquid (72)
- confia (33)
- documentacion (4)
- eventos-uniquid (28)
- janus (14)
- simplesamlphp (7)
- software (7)
- Virtualizacion (2)
- Escritorio (1)
- Yaco (9)
- Equipo (4)
- ytourism (2)
Archivos
- noviembre 2012 (1)
- julio 2012 (2)
- junio 2012 (2)
- mayo 2012 (2)
- abril 2012 (1)
- marzo 2012 (2)
- febrero 2012 (5)
- enero 2012 (3)
- diciembre 2011 (5)
- noviembre 2011 (8)
- octubre 2011 (7)
- septiembre 2011 (3)
- agosto 2011 (3)
- julio 2011 (1)
- junio 2011 (3)
- mayo 2011 (5)
- marzo 2011 (2)
- febrero 2011 (1)
- diciembre 2010 (1)
- noviembre 2010 (2)
- octubre 2010 (2)
- septiembre 2010 (1)
- junio 2010 (3)
- mayo 2010 (1)
- abril 2010 (1)
- marzo 2010 (3)
- febrero 2010 (3)
- enero 2010 (3)
- diciembre 2009 (6)
- noviembre 2009 (7)
- junio 2009 (1)
- mayo 2009 (1)
- marzo 2009 (1)
- diciembre 2008 (1)
- junio 2008 (1)
- abril 2008 (1)













Me encanta la manera en que escribes, de verdad