Bienvenidos a todos a la, como se mencionó, última charla de al menos esta pista. Estoy, ante todo, súper emocionado de estar aquí. Una de las razones es que esta es realmente la primera vez que hablo en una conferencia, y la otra razón es que compartiré cómo construimos accidentalmente un SDK de plugins para microfrontends, al que me refiero como microfrontends en esteroides, pero la responsabilidad en mí puso la advertencia, así que realmente malo.
Una breve introducción sobre mí, mi nombre es Andre, soy ingeniero principal en Betamax, que es una empresa de tecnología educativa con sede en Berlín y resulta que ha construido los sistemas de aprendizaje y enseñanza adaptativos más avanzados del mundo para escuelas. Así que además de, como se mencionó, construir productos digitales, me encanta construir cosas reales también, así que en caso de que ya te canses de hablar sobre código, entonces contáctame y podemos hablar sobre carpintería o deportes acuáticos para el caso, pero volviendo al tema, ¿cómo llegamos allí?
Para responder a la pregunta, quiero darte un poco de contexto del problema que estamos tratando de resolver y cómo terminamos en la posición de tener que resolverlo en primer lugar. Así que soy viejo, lo cual no es la causa raíz del problema, por supuesto, pero significa que en 2008, cuando Betamax comenzó el desarrollo, yo estaba entre los primeros desarrolladores que, que nos pusieron en marcha y construimos una aplicación tradicional de múltiples páginas impulsada por PHP, lo que nos llevó bastante lejos.
De hecho, tan lejos que cuatro años y medio después, pudimos anunciar que Uruguay había elegido a Betamax para proporcionar todo el material de matemáticas para todas las escuelas, lo cual fue un gran logro en aquellos días, pero también significó que tendríamos un problema bastante pronto porque, según los datos que obtuvimos en Alemania, sabemos que esta configuración no escalaría al nivel de todo un país. Así que pensamos que sería una buena idea construir una aplicación de una sola página, lo último en aquel entonces. Por casualidad, ¿alguno de ustedes sabe cuándo React fue de código abierto? Un mes después. Así que creo que es hora de abordar el elefante en la habitación. Estamos en la conferencia de React, pero en ese momento, optamos por la única opción razonable siendo AngularJS.
Así que, de hecho, construimos la aplicación, la lanzamos y hemos construido sobre esta base desde entonces, en realidad. Pero avanzando rápido, nueve años después, lo inevitable sucedió y Google descontinuó el soporte a largo plazo para AngularJS. Quiero decir, bastante tiempo para ser justos. En ese momento, ya había regresado a Betamax, con la misión de idear un plan de cómo migrar iterativamente de AngularJS a React. Así que abogué por un enfoque de micro frontend y lo ejecutamos con un solo span, que es básicamente un enrutador de JavaScript para micro servicios en el frontend. Y se diferencia, entre otras cosas, en diferentes tipos de microfrontends, que explicaré rápidamente porque usaré la terminología en adelante.
Así que tenemos aplicaciones, por supuesto, que son como cualquier otra aplicación de una sola página, pero sin una página HTML real. Tenemos una configuración raíz que proporciona esta página HTML raíz, maneja el registro de aplicaciones, montaje, desmontaje. Así que es responsable de toda la composición de la configuración de micro frontend. Luego tenemos utilidades para compartir lógica común y como servicios o biblioteca de componentes y tenemos analizadores para compartir UI entre marcos. Esto será importante más adelante. Nuestra prueba de concepto fue bastante fácil de hacer. Así que implementamos la navegación en React y mantuvimos el área de contenido como una versión reducida de AngularJS con un proceso de arranque a medida para la aplicación, que funcionó bastante bien.
Así que pusimos a todo un equipo en ello y comenzamos a desarrollar rápidamente hasta este punto. Ahora ejecutamos una configuración completa de micro frontend donde las aplicaciones pueden renderizar partes dentro de otras aplicaciones donde actualmente tenemos 58 microfrontends y seguimos contando. Tenemos servicios, microfrontends de utilidad que proporcionan APIs compartidas, incluyendo gestión de estado global y detrás de escena, hacemos esto con RxJS bastante intensamente. Y sí, todavía tenemos algunos casos de uso en AngularJS, desafortunadamente, pero estamos llegando allí. Sí, te lo prometí. Lo sé.
Comments