¿Cómo crear un índice de eventos en el patrón PubSub?

| Última modificación: 26 de septiembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

PubSub es un patrón que nos permite comunicar eventos entre las distintas piezas de nuestro proyecto gracias a un bus de eventos o event bus. Para implementar este patrón, creamos una clase llamada PubSub, desde donde se manejarán todos los eventos comunicados y los métodos requeridos para gestionar esta comunicación. En este post, te enseñaremos cómo crear un índice de eventos en el patrón PubSub para facilitar su acceso.

¿Qué es un índice de eventos?

Cuando hablamos de crear un índice de eventos en el patrón PubSub nos referimos a crear una sección de código en la que almacenemos todos los eventos a gestionar con este patrón. Es decir, una sección que contenga los eventos que se gestionarán con los distintos publisher y suscriber de nuestro proyecto.

En este sentido, un índice de eventos es la visualización y agrupación de lo que llamamos event bus dentro del patrón PubSub.

Aunque no es obligatorio para ejecutar el patrón, crear un índice de eventos en el patrón PubSub es una buena práctica.

La razón principal detrás de esta práctica es tener un lugar de donde se puedan copiar los textos específicos de los eventos para evitar errores en la escritura de ellos. Muchas veces nos puede pasar que el evento que publicamos es ERRORNOTIFICATION y escribimos ERR0RN0TIFICATI0N. Aunque parezcan similares, este error hará que la comunicación falle, pues ninguna pieza de nuestro proyecto está escuchando el evento que estamos publicando. Este problema se soluciona con un índice de eventos.

A continuación, te enseñaremos cómo crear un índice de eventos en el patrón PubSub donde manejar toda tu comunicación.

¿Cómo crear un índice de eventos en el patrón PubSub?

Crear un índice de eventos en el patrón PubSub es muy sencillo. Para ello, lo único que debemos hacer es declarar una propiedad pública dentro de la clase. En nuestro post sobre implementar patrón PubSub con clase en JavaScript, te hemos mostrado el código con el que puedes crear la clase PubSub. Dentro de este clase, logramos crear un índice de eventos en el patrón PubSub declarando la propiedad TOPICS.

La propiedad TOPICS, que puedes nombrar como quieras, se iguala a un objeto que contiene diversos eventos declarados en clave:valor. Ambas partes de un evento son iguales, pero la sección de valor será denominada como string. A continuación, te mostramos nuestra propiedad TOPICS con dos eventos, uno de notificación de error y otro de notificación de éxito:

TOPICS = {
SHOW_ERROR_NOTIFICATION: "SHOW_ERROR_NOTIFICATION",
SHOW_SUCCESS_NOTIFICATION: "SHOW_SUCCESS_NOTIFICATION",
};

Como puedes observar en las líneas de código anteriores, hemos creado un objeto que sirve como catálogo o índice de eventos. Te recordamos que crear un índice de eventos en el patrón PubSub es tan solo una guía que nos permite copiar los eventos para evitar errores. Sin embargo, si prefieres asegurarte tú solo de que tus eventos estén bien escritos, también es válido.

Antes no solo hemos creado un catálogo para poder copiar y pegar textos, sino que también hemos creado propiedades de un objeto de una clase. Esto quiere decir que podremos acceder directamente a ellas con comandos. Entonces, en vez de escribir lo siguiente en nuestra pieza publisher:

pubSub.publish ("SHOW_ERROR_NOTIFICATION", 'Error obteniendo datos');

Escribiríamos lo siguiente:

pubSub.publish (pubSub.TOPICS.SHOW_ERROR_NOTIFICATION, 'Error obteniendo datos'); 


El mismo comando podría usarse para nuestro suscriber:

De esta manera, crear un índice de eventos en el patrón PubSub nos permite tener un catálogo al que podemos acceder sin tan quiera entrar en el módulo de la clase PubSub. Esto es especialmente útil cuando tenemos un gran número de eventos y no queremos estar revisando, copiando y pegando algún evento en particular.

Otra ventaja de usar el comando de acceso al índice en vez del valor en string es que el valor de la propiedad del evento podrá cambiar sin que nada falle. Al final, como tanto el suscriber como el publisher están actuando frente al mismo comando, los cambios en este no alteran la comunicación entre las piezas de nuestro proyecto.

Por último, ahora que sabes cómo crear un índice de eventos en el patrón PubSub, ¡te invitamos a usar este patrón para comunicar tus propios eventos! Para seguir aprendiendo sobre la creación y desarrollo de proyectos web, te recomendamos nuestro Bootcamp Web Full Stack, un espacio de formación intensiva donde aprenderás patrones, lenguajes y herramientas fundamentales para este ejercicio. ¡Anímate a dar el siguiente paso en tu aprendizaje e inscríbete!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado