Etiqueta: dependencies

Circular Dependencies Webcast por Miguel Grinberg

Un Webcast de Miguel Grinberg sobre como evitar Dependencias Circulares en una aplicación Python / Flask.

My Metadata

  • Descripción: Un webcast de 1h en el que se refactoriza una aplicación Flask que empieza con un único fichero a varios paquetes y módulos.
  • Calificación: 3 sobre 5
  • Día de Visualización: 2020-06-28
  • Año de publicación: 2018
  • Duración: 68 minutos
  • Velocidad de reproducción recomendada: 1.75
  • Etiquetas: python; flask; dependencies; refactoring

Lecciones aprendidas

  • Mantener el entry point tan limpio como sea posible. Incluso con un único import.
  • El módulo que es ejecutado inicialmente por Python adquiere el nombre de __main__ a nivel interno, por ello los «nombres» que se definan en este módulo, no se identificarán inicialmente a efectos de dependencias como myfile.myvar si no como __main__.myvar, lo que es más fácil que genere un error de dependencias circulares
  • No usar los __init__.py como mecanismo para acortar los imports. Hay tantas opiniones a favor como en contra sobre el tema. A mi me ha generado más problemas que soluciones.
  • Usar imports desde la «raíz» from myapp.models.user import User y no estilo from user import User.
  • No pasa nada por no poner los import al inicio del fichero cuando tenga sentido que sea de otra forma, por ejemplo para evitar dependencias circulares. Usar # noqa para que no pite el linter en estos casos es aceptable.