No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
18 Hrs
40 Min
5 Seg

Creando el bosquejo de nuestra máquina de estado

4/15
Recursos

Aportes 12

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

me gusta cómo va el curso hasta el momento, puesto que mis bases en el mundo de la programación se sustentan en la electrónica y la programación de sistemas embebidos, uno de ellos es el PLC, en el cual uno de sus 5 formas de programar según normativa el SFC (Sequence flow control) es muy similar a esto que se está viendo es verdaderamente fantástico...

Yo en mi caso preferí agregar un estado adicional llamado “Thanks”, porque en el estado Tickets debería haber la opción de culminar la compra o cancelar todo. En conclusión, me quedó así:

const fetchMachine = createMachine({
  id: "buy plane tockets",
  initial: "home",
  states: {
    home: {
      on: {
        START: "search",
      },
    },
    search: {
      on: {
        CONTINUE: "passengers",
        CANCEL: "home",
      },
    },
    passengers: {
      on: {
        DONE: "tickets",
        CANCEL: "home",
      },
    },
    tickets: {
      on: {
        BUY: "thanks",
        CANCEL: "home",
      },
    },
    thanks: {
      on: {
        FINISH: "home",
      },
    },
  },
});

Código visualizador:

import { createMachine } from 'xstate';

const bookingMachine = createMachine({
  id: 'buy plane tickets',
  initial: 'initial',
  states: {
    initial: {
      on: {
        START: 'search'
      }
    },
    search: {
      on: {
        CONTIUNE: 'passengers',
        CANCEL: 'initial'
      }
    },
    passengers: {
      on: {
        DONE: 'tickets',
        CANCEL: 'initial'
      }
    },
    tickets: {
      on: {
        FINISH: 'initial'
      }
    },
  }
})

En esta clase faltó mencionar que el mismo valor con el que definas “initial”, debes inicial el flujo de estados.
En el ejemplo de la clase, Estefany usó:
initial: “inicial” (línea 5)
y luego:
states: {
initial: {
}
}

Yo soy ingeniero electrónico y en el curso de electrónica digital me enseñaron este concepto de maquinas de estado finito el cual goze como no tienen idea. Todo el curso de electronica digital fue sistemas binarios, circuitos digitales, logica, sencuencia y el tema final este. Me resulta super ameno como lo esta enseñando la profesora y aun más grato poder recordar y aplicar estos conceptos.

https://stately.ai/registry/new aqui se puede realizar la practica muy parecido a psint

Nuestro proyecto va a ser el flujo de apartar tickets en una aerolínea. La idea es que nosotros hagamos una búsqueda de vuelos que en realidad van a ser países, seleccionemos un país, luego de eso agreguemos a los pasajeros con los con ls que queremos volar y por último veamos el ticket impreso. Algunas consideraciones del proyecto son: * Se pueden agregar múltiples pasajeros. * En cualquier momento puedo cancelar la compra y volver al estado inicial. * Hay un listado de vuelos del cual seleccionar. ## **Mini-demo del proyecto** La página se llama `Book a fly` y este va a ser el `Welcome page` , es decir el estado inicial de nuestra máquina de estados. ![](https://static.platzi.com/media/user_upload/image-a65c91ef-2497-45c0-8312-0c6ee94c84fd.jpg) Al dar a `Comenzar` tengo que pasar a la `página de buscar destino` y seleccionamos algún país. ![](https://static.platzi.com/media/user_upload/image-db861765-5423-494b-ba2d-1c681ec84444.jpg) Continuamos, vamos a agregar a nuestros pasajeros. ![](https://static.platzi.com/media/user_upload/image-7f68d9b3-61ff-4b12-ae2b-0f7937a4ced2.jpg) Al ir a pagar, se nos mostrará nuestro ticket con el destino y los pasajeros que van al destino. Podemos ponerle un tiempo para ver el ticket y que si ya pasó el tiempo entonces que se reinicie la máquina. ![](https://static.platzi.com/media/user_upload/image-a32b7d7e-01db-4910-be2a-1fa1e1ffe0d5.jpg) El otro flujo que vamos a hacer es que hay un botón de `cancelar` en la parte superior que nos permite regresar al estado inicial. ![](https://static.platzi.com/media/user_upload/image-fcfcfbd4-856d-4319-a0a2-6ae27f93ddfe.jpg) ## **Bosquejo** Para realizar el bosquejo de la máquina de estados vamos a usar el visualizer de XState. ![](https://static.platzi.com/media/user_upload/image-61a9b415-fb28-42a5-aabe-674e31030908.jpg) ```js import { createMachine } from 'xstate'; const fetchMachine = createMachine({ id: 'buy plane tickets', initial: 'initial', states: { initial: { on: { START: "search", }, }, search: { on: { CONTINUE: "passengers", CANCEL: "initial", }, }, passengers: { on: { DONE: "tickets", CANCEL: "initial", }, }, tickets: { on: { FINISH: "initial", }, } } }); ```
Creo que no se han explicado bien los conceptos de entrada y de salida. Yo entiendo la entrada como un conjunto de eventos y la salida como un conjunto de transiciones o de estados visitados. Por ejemplo: Para la entrada entrada \[comenzar, continar, cancelar], daría la salida \[Inicial, Search, Passengers, Inicial]. ¿Ustedes que opinan?

El estado es como un flujo de agua que va recorriendo las tuberías de la maquina de estado.

Solo que ese flujo es a la velocidad de la luz.

Esto resuena mucho como la interpretación de los diagramas de flujo.

Excelente curso. Muchas gracias, me gusta