Máquinas de estado finito en front end para arquitectos

Clase 25 de 29Curso de Arquitectura de Software Aplicada

Resumen

La capa de presentación en los sistemas de información es la puerta de entrada para los usuarios. Tomar decisiones acertadas en esta capa puede definir el éxito y la robustez del producto a largo plazo. Aquí conocerás cómo las máquinas de estado finito y los micro front ends pueden ser aliados en tu arquitectura, permitiendo flexibilidad ante los constantes cambios en tecnologías de front end y mejorando la experiencia de usuario.

¿Por qué la capa de presentación es clave en un sistema de información?

La manera en que los usuarios interactúan con el sistema depende completamente de la capa de presentación. Esta capa establece la conexión humana y el tono del sistema.

  • Un arquitecto de software debe buscar estrategias para abstraerse de los cambios continuos en tecnologías de front end, como frameworks y librerías.
  • Aunque la tecnología impacta el sistema, una visión centrada en lo fundamental permite éxito a largo plazo.

¿Cómo las máquinas de estado finito simplifican la arquitectura front end?

Las máquinas de estado finito ofrecen un modelo claro para manejar las transiciones y flujos dentro del sistema, especialmente en la interfaz de usuario.

  • Permiten definir reglas de transición a partir de eventos y estados predeterminados.
  • Estas reglas se pueden implementar en varias capas, desde bases de datos hasta librerías externas.
  • En front end, facilitan la abstracción de flujos y transiciones, haciendo que la capa de presentación reaccione a los cambios en el modelo de estados.
  • Este enfoque simplifica el proceso de pruebas globales o de integración incluso sin la capa de renderización finalizada.
  • Usar máquinas de estado finito te brinda la posibilidad de cambiar frameworks (React, Vue, Angular) sin perder lógica de negocio.

¿Qué aportan los micro front ends en el desarrollo de interfaces?

Los micro front ends transfieren la lógica de los microservicios al aspecto visible del sistema, orquestando aplicaciones complejas de forma práctica.

  • Puedes reemplazar componentes o servicios del front end de manera independiente y sencilla.
  • Esta metodología favorece el trabajo en equipos independientes y permite usar distintas tecnologías (por ejemplo, partes en Angular y otras en Vue) en una misma aplicación.
  • Mantienen transiciones consistentes sin depender de la tecnología de renderización o del método de comunicación con los servicios.
  • A través de patrones como back end for front end, las transiciones siguen siendo gestionadas de forma abstracta.
  • Sin embargo, en contextos donde los equipos son pequeños o usan herramientas homogéneas, los micro front ends pueden ser una solución exagerada y no siempre necesaria.

¿Cómo influyen la experiencia y los sistemas de diseño en la arquitectura de front end?

No basta con una tecnología robusta; la experiencia del usuario y la coherencia visual también son esenciales.

  • Las interfaces y los sistemas de diseño ayudan a comunicar efectivamente con los usuarios.
  • Es recomendable reducir la carga cognitiva, siguiendo propuestas como las del libro No me hagas pensar de Steve Krug.
  • En organizaciones como el Banco Interamericano de Desarrollo, donde las interfaces tratan con procesos y documentos complejos para usuarios de perfiles variados, se requiere crear un lenguaje visual común.
  • La meta: que todos los usuarios, sin importar su experiencia previa, puedan sentirse cómodos y mantener la claridad en procesos visualmente exigentes.