Diseño de Máquinas de Estado para Reservas de Vuelos

Clase 4 de 15Curso de State Machines en React.js

Resumen

¿Cómo crear una máquina de estados para una aerolínea?

Crear una máquina de estados ofrece una estructura clara y organizada para gestionar los flujos complejos de una aplicación. En este ejemplo, desarrollaremos un flujo para la reserva de tickets en una aerolínea. Aquí te mostramos cómo hacerlo de manera efectiva utilizando el visualizer de XState.

¿Cuál es el flujo de la aplicación?

El flujo de la aplicación contempla varias etapas clave para completar el proceso de reserva de tickets:

  1. Buscar vuelos (seleccionar país): Selecciona un país de destino disponible.
  2. Agregar pasajeros: Añade los pasajeros con los que vas a viajar.
  3. Ver ticket impreso: Se muestra un ticket con el destino y los pasajeros.

Consideraciones del proyecto

  • Se pueden agregar múltiples pasajeros.
  • Existe la opción de cancelar el flujo en cualquier momento y regresar al inicio.
  • Los destinos son representados por países.

¿Cómo se estructura la máquina de estados?

La máquina de estados se compone de varios estados y transiciones definidos claramente. A continuación se describe cómo estructurarla.

// Configuración básica de la máquina de estados
const machine = {
  id: 'comprar_tickets',
  initial: 'inicial',
  states: {
    inicial: {
      on: {
        start: 'search'
      }
    },
    search: {
      on: {
        continuar: 'passengers',
        cancelar: 'inicial'
      }
    },
    passengers: {
      on: {
        done: 'tickets',
        cancelar: 'inicial'
      }
    },
    tickets: {
      on: {
        finish: 'inicial'
      }
    }
  }
};

Estados

  1. Inicial: Es la página de bienvenida y el punto de partida.
  2. Search: Aquí el usuario selecciona el destino.
  3. Passengers: Se añaden todos los datos de los pasajeros.
  4. Tickets: Se visualizan los detalles del ticket final.

¿Cómo se implementan las transiciones?

Las transiciones permiten moverse de un estado a otro mediante eventos específicos:

  • Start: Del estado inicial al search.
  • Continuar: Del search a passengers.
  • Cancelar: Desde cualquier estado retornando a inicial.
  • Done: De passengers a tickets.
  • Finish: De tickets de vuelta a inicial.

¿Cómo ejecutar la máquina de estados?

Para visualizar y probar la máquina de estados, utiliza el visualizer de XState:

  1. Define el objeto base con un ID y el estado inicial.
  2. Añade los estados e implementa cada transición.
  3. Usa visualize para actualizar y verificar que las rutas son correctas.

¿Qué sigue después de definir la máquina de estados?

¡Felicidades! Ahora que has bosquejado tu máquina de estados, es hora de implementarlo en un entorno de desarrollo real. En la próxima fase, llevaremos todo este aprendizaje al código y crearemos una aplicación funcional que utilice esta estructura. ¡Animate y sigue profundizando en el fascinante mundo del desarrollo!