otro equipo, nuestro componente podría estar usando una versión de React. La aplicación host podría tener una versión diferente de React. Querríamos alguna forma de verificar que esas dependencias son compatibles en el momento de la compilación. Luego, la opción automática para cambios no destructivos. Esta es la idea de, como, tengo un encabezado, no necesita ninguna información, es solo un componente de React y el tipo es solo, como, genial, es un encabezado, renderízalo, va a mostrar el encabezado. Cuando alguien cambia una copia dentro del encabezado, el color, lo que sea, el contrato de ese componente no cambia. Entonces el equipo que usa el encabezado no debería tener que hacer nada. Si refrescas la página, deberías ver el nuevo encabezado cuando se publique uno nuevo.
La opción manual para cambios destructivos significa que cuando un equipo, en realidad, que en el encabezado, en realidad necesita hacer algo nuevo para hacer ese trabajo. Por ejemplo, acabamos de traducir, como, hicimos nuestro sitio web internacionalizado y ahora el componente necesita saber qué idioma necesita mostrar. De lo contrario, no puede hacer el trabajo. Bueno, en ese caso, necesitaremos comunicarnos con el equipo que eligió ese componente para ser como, en realidad, no, por favor, necesitas proporcionar el idioma como parte del contrato a ese componente para que pueda hacer mi trabajo. Y en ese caso, haces básicamente una nueva versión del paquete y pides a los equipos que actualicen manualmente y cambien la base de código porque en realidad necesitan cambiar algo en la base de código para que el componente pueda funcionar.
¿Cómo se ve la arquitectura? Entonces, tenemos este increíble diagrama que, como, todo el mundo está como, oh, Dios mío, ¿qué está pasando aquí? Hay tantas cajas rosadas. Vamos a repasarlas una por una. La primera, el host. Entonces, lo que va a mostrar ese micrófono. Entonces, una aplicación Remix en este caso. La segunda es un pequeño frontend. Es una pieza de frontend, un encabezado, un pie de página, algún tipo de componente que va a ser consumido por el host. Entonces, se muestra dentro de la aplicación host y se compone de dos carpetas, una carpeta de aplicación que contiene la fuente real de tu componente de React y un contrato, que es un paquete de NPM que vas a publicar para las personas que quieran consumir eso en tiempo de ejecución para poder hacerlo. Y finalmente, porque estamos hablando de desplegar esos paquetes de este pequeño frontend porque necesitamos poder cambiarlos, porque no están en el paquete de NPM, pueden cambiar en algún lugar, necesitan estar en algún lugar para empujar esos paquetes. Y en este caso, es una pequeña API construida en Cloudflare y desplegada en Cloudflare como un trabajador de Cloudflare.
Genial. Entonces, nuestro host de ejemplo, en este caso, Remix, va a instalar el paquete de NPM, que proporciona un método que es asíncrono, y cuando llamas a ese método, te devuelve un componente de React que puedes usar en tu aplicación. Cuando llamas a ese método, ¿qué hace? Bueno, usa una pequeña biblioteca de cliente para llamar a una API para obtener la última versión del paquete. Entonces, toda la complejidad de, como, ¿cómo obtengo un componente de React en tiempo de ejecución de un paquete que está desplegado en algún lugar y todo eso, todo eso se abstrae en la biblioteca. Entonces, cuando construyes un nuevo pequeño frontend, no necesitas reinventar la rueda todo el tiempo y copiar y pegar mucho código. Puedes simplemente tener básicamente todo está abstraído en una biblioteca que usas. Entonces, cuando el equipo que tiene el pequeño frontend, por ejemplo, el equipo del encabezado, tiene una nueva versión del encabezado, simplemente, como, empujan al repositorio, tendrán algo así como, por ejemplo, una acción de GitHub que va a empaquetar el nuevo componente, y luego desplegar ese paquete a esta API de Cloudflare. Y básicamente se actualizará
Comments