Si hablamos de las desventajas, puedes ver que, ya sabes, en general, en general, cada vez que necesitas recargar la página completa cada vez que te mueves a otra página. Sí, creo que esas son la mayoría de las dificultades, que siento cuando trabajo con el renderizado en el lado del servidor, y también puedes ver que las páginas se cargan más rápido. Pero no son muy interactivas. Por otro lado, si hablamos del renderizado en el lado del cliente, puedes ver que hay ventajas, como interacciones rápidas. Porque, de nuevo, estás jugando con JavaScript en el front-end, puedes hacer prácticamente cualquier cosa que quieras allí. Hay una carga menor en el lado del servidor, porque la mayor parte de la lógica ocurre en el lado del cliente o, quiero decir, en tu lado del cliente. Y, de nuevo, una vez que se carga tu página inicial, la mayoría de las veces, si te mueves a otra página o si generas una nueva página o si realizas alguna lógica, es más rápido en comparación con el renderizado en el lado del servidor, porque todo, de nuevo, no tiene que pasar por el servidor, no tiene que venir del servidor. En este punto, también puedes tener componentes de interfaz de usuario utilizables. Estoy seguro de que la mayoría de nosotros ya estamos familiarizados con esta parte, porque es como, de nuevo, si estás usando alguna vista de React o algún framework como React, Vue o Angular, la mayoría de ellos utilizan componentes de interfaz de usuario reutilizables. Por otro lado, si hablamos de las desventajas, nuevamente, como mencioné antes, la carga inicial de la página va a ser muy lenta, porque es como si fuera la página completa, que es como el HTML completo que simplemente se carga y luego tu JavaScript trabaja en ello. Entonces, JavaScript tiene que renderizar, quiero decir, JavaScript tiene que aplicar la lógica. Tiene que trabajar en el lado del front-end y tiene que ver qué renderizar. Entonces, sí, es lento y la carga inicial de la página. Luego también tenemos un bajo SEO, porque, quiero decir, recuerdo cuando recién comencé con los frameworks de front-end, solía haber momentos en los que estaba construyendo mi portafolio y cosas así, y pensaba, ya sé Vue, pero ahora, ¿cómo voy a hacer la parte de SEO y cosas así? Luego me di cuenta de que la mayoría de las veces, necesito instalar un par de cosas y no va a funcionar de manera muy eficiente como solía funcionar con páginas estáticas y renderizado en el lado del servidor. Sí, esas son las desventajas y hay muchas dependencias, como mencioné antes, las bibliotecas externas y cosas así. Entonces, incluso si deseas tener algo para el lado de SEO, necesitas instalar un par de cosas. Y así es como funciona dependiendo del framework de front-end que estés utilizando. Creo que esa fue una breve introducción sobre el renderizado y el tipo de páginas. Ahora podemos pasar a Jamstack y ver exactamente qué es Jamstack y cómo Jamstack utiliza todos los beneficios de, no diré todos los beneficios, pero diré los beneficios de todas las cosas que discutimos y cómo funciona y qué términos están asociados con Jamstack. Esta es la definición normal que encontramos en Internet. Dice que es una nueva forma de construir sitios web y aplicaciones que ofrecen un mejor rendimiento, mayor seguridad, menor costo de escalabilidad y una mejor experiencia para los desarrolladores. Pero, quiero decir, ¿cómo funciona eso? Así que vamos a ver cómo funciona y, quiero decir, también estoy leyendo la definición porque nunca puedo aprender la definición porque necesito ver cómo funciona. Y solo entonces puedo entender lo que significa la definición.
De acuerdo, sí. Así es como encontré esta imagen y muestra qué son las cosas. Entonces, quiero decir, lo primero es esta mermelada. ¿Qué significa la J? ¿Qué significa la A? ¿Qué significa la M? Entonces, en general, se necesita usar todas estas cosas de tal manera que todo se optimice más. Entonces, necesitas usar JavaScript en el lado del cliente y necesitas tener tu lógica allí. Cómo puedes usar JavaScript y luego puedes usar las APIs para obtener los datos en caso de que haya algo dinámico, luego necesitas usar las APIs, y luego tenemos el marcado, que es la parte de HTML la mayoría de las veces. Y sí, quiero decir, la mayoría de las veces hacemos esto del marcado, quiero decir, construimos esto del marcado en el momento de la compilación. Quiero decir, solo tenemos ese tipo de cosas en su lugar. Pero será más claro una vez que nos adentremos en ello. Quiero decir, como mencioné, hay algunos términos y hay algunas cosas que, quiero decir, no diría que son solo estas reglas estrictas que debes seguir, pero es algo que si sigues en el enfoque de Jamstack, es mejor, quiero decir, puedes llamarlo más como una cosa de Jamstack cuando sigues estas cosas de las que vamos a hablar. De acuerdo. Principalmente dice que necesitas generar sitios web estáticos que se puedan almacenar en caché o activos estáticos en el momento de la compilación siempre que sea posible. Entonces, la mayoría de las veces, cuando estás construyendo la aplicación, cuando estás, ya sabes, cuando estás implementando la aplicación antes de eso, cuando construyes la aplicación, la mayoría de las veces queremos que todas estas cosas estáticas se generen en ese momento. Entonces, incluso si, ya sabes, digamos, si estás obteniendo los datos de algún lugar, la mayoría de las veces los has obtenido primero, luego has construido la página y esa página construida va a ser similar para todos los usuarios o algo así. Quiero decir, definitivamente necesitas tener una parte dinámica en el medio a veces, pero por eso dice que siempre que sea posible y en la medida en que sea posible. Entonces, necesitas hacer este tipo de construcción estática tanto como puedas, porque la construcción estática, estos activos estáticos nos van a dar los beneficios de la página web estática de los que hablamos. Entonces, quiero decir, si la mayor parte ya está renderizada allí, solo necesitas mostrarla. Es como, ya sabes, es más fácil para el SEO. Es más fácil para entregarlo porque no hay mucha lógica que ocurra todo el tiempo. No es que JavaScript esté renderizando algo que está ahí para todos los usuarios cada vez. Solo construye uno. Quiero decir, solo construyes ese tipo de activos estáticos una vez y luego simplemente los entregas a través de la red de una CDN o cualquier otra cosa en la que estés implementando. Sí. Entonces, sí, y eso es lo que iba a mencionar a continuación. Entonces, es como que necesitas implementar estos activos en una CDN. Entonces, ya sabes, por eso mencionamos la parte de almacenamiento en caché allí. Una vez que tienes esto, es mejor que lo implementes en una red de distribución de contenido. Y, ya sabes, puedes usar esos bordes de esa red de distribución de contenido para brindar al usuario una experiencia más rápida, ya que esas páginas son principalmente estáticas. O ya sabes, ya que esos activos son principalmente estáticos, de todos modos son más rápidos. Incluso si los implementas en una CDN o en una red de distribución, será aún más rápido para que el usuario, ya sabes, interactúe. O quiero decir, obtenga esas páginas o obtenga esas aplicaciones web para ellos mismos. Una cosa que mencionar aquí es que, creo que todos estos activos estáticos, que estás entregando, no es que, ya sabes, quiero decir, ya lo mencioné antes, no es que no puedas tener una parte dinámica allí. Pero es como que una vez que estás construyendo la mayor parte de eso, tiene que ser estático. Y sí, creo que eso es la mayoría de eso aquí. Y puedo pasar a la siguiente diapositiva, que dice nuevamente que necesitas usar JavaScript en el lado del cliente. Y, ya sabes, necesitas llamar a APIs de terceros, junto con estas funciones sin servidor para interacciones dinámicas, que mencioné antes. Otra cosa aquí, ya sabes, cuando tenemos esta red de borde, quiero decir, cuando tenemos la red de distribución de contenido, es como que cada vez que algo cambia en tu sitio web, digamos, ya sabes, tienes un blog y luego cambias algo dentro de un blog, luego necesitas reconstruir esa página en particular, porque no va a cambiar de nuevo. Entonces reconstruyes ese tipo de cosas y esta caché debe invalidarse para que los usuarios puedan ver el contenido actualizado. Entonces, una vez que se crea, necesitas reconstruir ese tipo de cosa, esa página en particular o esa parte en particular para que el usuario pueda ver el contenido actualizado. Sigamos adelante. Así es como se ve la estructura. Entonces, puedes ver que generalmente estará en tu repositorio de Git, tal vez estés usando GitLab, GitHub o cualquier otra cosa. Hoy vamos a usar GitHub para implementarlo nosotros mismos. Pero sí, así es como se ve. Cambias algo cuando quieras, luego ese CI, CD pipeline en particular, que tienes, va a reconstruir ese tipo de páginas, tal vez el sitio web completo o tal vez las páginas específicas que hayas seleccionado, y eso va a generar estos activos estáticos, ya sea HTML, PNG y otros archivos estáticos que tenga. Y una vez que eso esté, ya sabes, está en la CDN. Y los usuarios pueden acceder desde estos puntos. Quiero decir, el usuario puede acceder a cualquiera de las páginas desde estos puntos. Y luego tienes las APIs, cuando hay algo dinámico sucediendo, entonces puedes usar estas APIs. Quiero decir, puedes usar estas APIs para generar contenido dinámico. Entonces, digamos que hay una página donde, ya sabes, tienes algunas cosas y solo necesitas que una pequeña parte sea dinámica. Puedes, quiero decir, solo puedes solicitar esa parte de las APIs, desde cualquier sistema o desde donde quieras. Sí, hablemos también de los generadores de sitios estáticos. Es un software o una herramienta que te permite generar los activos estáticos para cualquier sitio web o cualquier proyecto del que estábamos hablando. Por ejemplo, si estás construyendo un sitio web, hay muchos constructores de sitios estáticos o generadores de sitios estáticos que te permiten, ya sabes, extraer los activos estáticos de eso. Entonces, solo puedes implementar esos activos estáticos en cualquier lugar. Sí, como dice la definición, es un software que produce e implementa un sitio web estático utilizando fuentes de datos y plantillas. Creo que hay algunos ejemplos que deberían estar en algún lugar, pero creo que estarán en las próximas diapositivas. Pero así es como se ve el flujo de generación de sitios estáticos, puedes ver que hay datos, hay contenido, hay plantillas, usas el generador de sitios estáticos en el medio, y eso va a generar el sitio web para ti. Y te va a dar un sitio web estático. Y luego puedes, de nuevo, obtener los beneficios de una página web estática, de los que hablamos con este sitio web, va a ser más rápido, va a ser más fácil de mantener, va a ser más barato y todas las demás cosas. Y hoy vamos a usar Next JS como nuestro constructor de sitios estáticos. Entonces, vamos a usar la parte de generación de sitios estáticos de Next JS con nuestro código hoy. Vamos a usar esto. Sigamos adelante. ¿Qué es un sistema de gestión de contenido? No siempre es necesario utilizar un sistema de gestión de contenido en el enfoque de Jamstack.
Comments