¿Son los Micro Frontends el futuro de las páginas web?
Actualmente, el desarrollo frontend es un campo en el que nos vemos obligados a trabajar con una tecnología muy específica desde la mera concepción del proyecto en cuestión. Normalmente, tenemos algo llamado tech-stack, que se refiere a la pila de tecnologías diferentes que se estarán utilizando en un proyecto, como diferentes librerías, herramientas, e incluso lenguajes de programación enteros. Esto nos obliga a tener un equipo muy especializado en este tech-stack, lo que supone un claro problema en el que el abanico de opciones de desarrollo es muy limitado inicialmente. Para resolver este problema, en la actualidad se está comenzando a plantear un concepto muy interesante llamado Micro Frontends, el cual abordaremos a lo largo del presente artículo.
- ¿Qué son los Micro Frontends?
Los Micro Frontends son un enfoque arquitectónico para el desarrollo frontend que se basa en la idea de pensar en un proyecto como una colección de características que pertenecen independientemente a diferentes equipos. Cada equipo tiene una tarea determinada en la que se especializa. Un equipo es multifuncional y desarrolla sus características de principio a fin, desde la base de datos hasta la interfaz de usuario. Básicamente, es un enfoque que intenta segmentar los equipos de desarrollo lo máximo posible.
- Arquitectura actual de desarrollo vs. Micro Frontends.
En la arquitectura monolítica tradicional, todo el proyecto se considera una sola pieza. Las aplicaciones monolíticas son de un solo nivel, lo que significa que varios componentes se combinan para formar una única gran aplicación. En consecuencia, tendrán grandes bases de código que dificultan su gestión a lo largo del tiempo. Si hay que actualizar un componente, es posible que también haya que reescribir otros, y toda la aplicación tiene que volver a compilarse y probarse. El proceso puede llevar mucho tiempo y limitar la agilidad y la velocidad de los equipos de desarrollo de software.
En la Arquitectura de los Micro Frontends, un proyecto se divide en diferentes características y se asigna a diferentes equipos. Los equipos individuales pueden trabajar en esa tarea de forma independiente con la tecnología con la que se sientan cómodos, independientemente de lo que otros equipos estén utilizando. Los Micro Frontends hacen que un proyecto sea menos complejo y más fácil de gestionar.
- Beneficios de utilizar Micro Frontends.
1. Uso de múltiples frameworks.
Los Micro Frontends dan a los equipos individuales la libertad de utilizar cualquier framework o lenguaje de programación que deseen utilizar para trabajar. Algunos pueden tener experiencia en React, Vue, Angular u otros frameworks. Algunos pueden sentirse cómodos en JavaScript y otros en TypeScript. En el enfoque monolítico, una aplicación debe desarrollarse utilizando el mismo lenguaje de programación o herramienta. Así, esto hace que los individuos trabajen con un lenguaje con el que no se sienten cómodos o en el que carecen de la experiencia. Así, los Micro Frontends facilitan que los equipos trabajen en una misma aplicación con múltiples lenguajes y frameworks.
2. Escalabilidad de un proyecto.
Los Micro Frontends nos permiten escalar un proyecto fácilmente. Permiten a los equipos hacer crecer su parte del frontend con actualizaciones incrementales que llevarán a la aplicación a escalar a un ritmo manejable con el tiempo con múltiples equipos responsables de sus propias implementaciones de Micro Frontend designadas.
3. Reusabilidad del código desarrollado.
Los componentes probados y desplegados por diferentes equipos pueden ser reutilizados por otros equipos y también pueden ser reintroducidos en otros proyectos. Esto puede ayudar a la creación de un ecosistema de bibliotecas de componentes web propio de la empresa.
4. Desarrollo y despliegue más rápido del proyecto.
Como cada equipo trabaja de forma independiente en diferentes características simultáneamente, el desarrollo es más rápido. Los equipos pueden trabajar en su parte del proyecto y desplegarla sin afectar a toda la aplicación.
5. Aplicaciones más estables y mantenibles.
Al dividir un proyecto entero en proyectos más pequeños, el proyecto resulta más fácil de gestionar. Los equipos individuales pueden trabajar y gestionar su parte del proyecto. Las funciones divididas son en su mayoría independientes, por lo que es más fácil garantizar que el resto de la aplicación permanezca estable.
6. Facilidad para realizar pruebas unitarias.
Los equipos individuales trabajan en sus características y las prueban individualmente. así, resulta más fácil ya que no es necesario probar toda la aplicación.
- Desventajas de utilizar Micro Frontends.
1. Complejidad.
Los Micro Frontends deben ser implementados con una planificación adecuada. Si se implementa sin un plan adecuado, entonces se volvería demasiado complejo para los desarrolladores más adelante. El descuido de un equipo podría obstaculizar todo el proyecto durante el tiempo de ejecución. El despliegue de cambios o actualizaciones de la aplicación puede ser más complejo cuando se tienen múltiples micro frontales. Podría causar conflictos si no se despliega en el orden correcto.
2. Riesgos debidos a mala comunicación.
Es necesario que haya una buena comunicación entre los equipos si están trabajando en módulos individuales. Las lagunas de comunicación pueden llevar a la duplicación de métodos o componentes que podrían haberse reutilizado fácilmente y ahorrar un tiempo precioso a los desarrolladores y a la empresa.
3. Aumento de cargas útiles.
El uso de más tecnología y frameworks provoca una mayor carga en el navegador del usuario. Esto hace que el navegador cargue más datos de todos los diferentes marcos utilizados en una aplicación y, por lo tanto, hace que el navegador sea lento.
- Conclusión
En este artículo, hemos hablado de los Micro Frontends. Se trata de un proceso de división de un proyecto en diferentes módulos donde diferentes equipos pueden trabajar de forma independiente en módulos separados. El caso de uso de la arquitectura Micro Frontend depende de su aplicación. Si tienes un proyecto pequeño y un equipo pequeño entonces la arquitectura de Micro Frontends puede no ser un método factible. Pero si se trata de un proyecto grande con un gran equipo trabajando en él, entonces sería beneficioso implementar la arquitectura Micro Frontend.
Si te llamó la atención lo discutido en el artículo, puedes encontrar más información en este enlace: https://micro-frontends.org/.
- Zant.
No hay comentarios: