En las aplicaciones web basadas en Python, ¿para qué ha usado las ‘señales’?

En la aplicación Django, la usé para eliminar dependencias entre diferentes aplicaciones. Así que ahora tengo una aplicación web (e-shop) con muchas aplicaciones y algunas aplicaciones no son obligatorias para cada instancia de e-shop. Estas aplicaciones no obligatorias puedo agregarlas o eliminarlas de la lista de aplicaciones en la configuración sin ninguna modificación, incluso si estas aplicaciones necesitan comunicarse entre sí.

Por ejemplo, cuando se paga el pedido, la señal dice que se envió y otras aplicaciones pueden recibir esa señal y hacer otras cosas. La aplicación de facturas puede enviar correo con el PDF de la factura, otra aplicación puede enviar productos de software al correo electrónico de los clientes, otra aplicación puede enviar mensajes al almacén, etc.

O incluso puedo tener más aplicaciones haciendo lo mismo . No es lo que tengo, pero me imagino que tengo dos aplicaciones de facturas, una simple que es solo una lista de facturas y genera archivos PDF y otra que está conectada a algún software de contabilidad. (Y el cliente puede elegir cuál prefiere. Para mí es solo un cambio de pocas letras. Idealmente).

Sin señales, tendría que cambiar el código en otra aplicación de la que quiero agregar al proyecto. Por ejemplo, en la ‘orden’ de la aplicación, tendría que agregar o cambiar la línea cada vez que diga algo como factura de importación; invoice.create (…) cuando cambio la configuración de qué aplicación de factura usar.

Con señales no tengo que modificar nada. Todo funciona bien y las aplicaciones no necesitan conocerse entre sí. Eso es bueno.

Pero no olvide que las señales no son soluciones para todo. Piensa antes de usarlos. Probablemente habrá una mejor manera de hacerlo sin ellos. ¡Encontrar errores en las señales no es divertido!

More Interesting

¿Cuáles son algunos frameworks, bibliotecas o herramientas "en boga" entre los desarrolladores que nacen y / o se mantienen principalmente en la Europa mediterránea?

¿Por qué debería implementar el enrutamiento del lado del cliente en una aplicación de una sola página?

¿Existe una aplicación en línea o fuera de línea que use plantillas de animación automatizadas para la creación de videos, similar a Treepodia?

¿Cómo puedo obtener los primeros usuarios de mi aplicación social de Facebook para usuarios de inglés?

¿Está muerto el elemento del formulario web?

¿Cuáles son los obstáculos para hacer que las aplicaciones web sean tan buenas como las aplicaciones nativas?

¿Cuál es el mejor entorno de programación en línea (IDE) para desarrollar aplicaciones web adecuadas para alguien que no ha programado durante diez años?

¿Cuándo se utilizan cadenas vacías en aplicaciones web?

¿Cuáles son todos los sitios web de "búsqueda instantánea" que se han creado?

Desde una perspectiva de escalabilidad, ¿debería una startup adoptar NoSQL desde el primer día o debería convertirse gradualmente a medida que crecen la base de usuarios y los datos?

¿Dónde trazas la línea con la mejora progresiva en la web?

¿Por qué las aplicaciones web no utilizaron las API RESTful desde el principio de la web, en lugar de las aplicaciones basadas en formularios?

¿Cuáles son los mejores recursos para aprender más sobre los navegadores, el diseño del marco web y la seguridad?

¿Cuáles son las herramientas de productividad que más usó para ahorrar tiempo?

Cómo hacer una aplicación en la web para uso personal