Astro & Fresh - Comprendiendo la Arquitectura de Islas

Rate this content
Bookmark

Una introducción a la emergente arquitectura de islas que puede mejorar significativamente el rendimiento de tus aplicaciones.

FAQ

La arquitectura de islas es una forma emergente de construir sitios web que permite desarrollar páginas con poco o incluso sin JavaScript, enfocándose en mejorar la carga y la interactividad de ciertas partes de la página independientemente del resto.

Las bibliotecas líderes que implementan la arquitectura de islas son Astro y Fresh.

Astro permite a los desarrolladores construir sitios web usando la arquitectura de islas, donde se pueden crear 'islas' de interactividad que cargan su propio JavaScript de manera independiente, mejorando la performance y la interactividad del sitio.

El renderizado en el lado del servidor permite cargar algunas partes de la aplicación como HTML y servirlas directamente a los usuarios, lo que mejora el SEO y reduce los tiempos de carga al no depender completamente de JavaScript y la hidratación del lado del cliente.

La hidratación es un proceso en el desarrollo web donde una página HTML servida inicialmente por el servidor se vuelve interactiva mediante la adición de JavaScript. Este proceso permite que los elementos interactivos comiencen a funcionar después de que la página ha sido cargada.

La hidratación completa implica cargar todo el JavaScript necesario para la página de una sola vez, mientras que la hidratación parcial solo carga JavaScript para componentes específicos cuando es necesario, lo cual es más eficiente y rápido.

Optimizar un sitio web con arquitectura de islas implica identificar componentes que no necesitan JavaScript y servirlos como HTML estático, mientras que para los componentes dinámicos se carga JavaScript de manera selectiva y solo cuando es necesario.

Arpit Bharti
Arpit Bharti
21 min
24 Oct, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La arquitectura de islas es una nueva forma de construir sitios web con poco o ningún JavaScript, utilizando bibliotecas como Astro y Fresh. La representación en el servidor mejora el SEO y los tiempos de carga, pero aún puede resultar en grandes cargas de JavaScript. La hidratación permite islas de interactividad, cargando solo el JavaScript necesario. Astro es un marco para implementar la arquitectura de islas, que admite múltiples bibliotecas como React y SolidJS. Permite la migración progresiva entre marcos e integración de diferentes bibliotecas en el mismo proyecto.

1. Introducción a la Arquitectura de Islas

Short description:

La arquitectura de islas es una nueva forma emergente de construir sitios web con poco o ningún JavaScript, utilizando bibliotecas como Astro y Fresh. Estos sitios web se pueden dividir en sitios impulsados por contenido y sitios impulsados por datos, cada uno con diferentes necesidades y escala. Las bibliotecas de componentes como React, Vue, Svelt y SolidJs se han vuelto populares para construir estos sitios web, ofreciendo composabilidad, reutilización y facilidad de eliminación. Sin embargo, son bibliotecas del lado del cliente, lo que puede causar problemas con la indexación de motores de búsqueda y resultar en grandes cargas de JavaScript.

Hola a todos. Quiero hablar sobre la arquitectura de islas hoy. Es una nueva forma emergente de construir sitios web que te permite construir sitios web con poco o incluso sin JavaScript. Las bibliotecas líderes en esto son Astro y Fresh. Intentaré hacer una demostración de Astro en esta charla y exploraremos cómo implementa la arquitectura de islas.

Pero antes de llegar allí, quiero sentar las bases de por qué existe algo como la arquitectura de islas y cómo llegamos a este punto. Así que un poco sobre mí, mi nombre es Arpit. Puedes encontrarme en línea. Trabajo en el espacio de Web 3.0 para un protocolo DeFi y comencemos.

Entonces, pensemos en el tipo de sitios web que estamos acostumbrados a construir. Construimos blogs, documentaciones o aplicaciones muy impulsadas por datos, algo como Facebook que tiene mucha información para mostrar al usuario. Podemos dividirlos en dos tipos diferentes de sitios web: sitios web impulsados por contenido y sitios web impulsados por datos. Ambos tienen diferentes necesidades y diferentes tipos de escala que están tratando de lograr y debemos intentar usar la herramienta correcta para el trabajo.

Entre ellos, tenemos de todo. Como dije, sitios web impulsados por contenido y sitios web impulsados por datos. Pero esto no es una cosa de elegir uno u otro. Hay algunos sitios web que tendrán mucho contenido en una página, pero la otra página será principalmente estática y nada más. La razón por la que menciono esto es que estamos acostumbrados a construir muchos de estos con las mismas herramientas. Y esas herramientas son bibliotecas de componentes que se han vuelto muy populares en la última década más o menos. La más popular es React, pero algunos de ustedes pueden estar usando Vue, Svelt o SolidJs. Los beneficios de estos son que son componibles. Puedes combinarlos en diferentes componentes. Puedes reutilizarlos en toda tu aplicación. Incluso en sistemas de diseño, puedes usar tipos similares de componentes en diferentes plataformas incluso. Por lo general, son fáciles de escribir, especialmente si los escribes en pequeños fragmentos. Son muy fáciles de eliminar. La cosa sobre estas bibliotecas es que todas son bibliotecas del lado del cliente. Por lo general, no renderizan nada en el servidor. Debido a esto, tienes un problema y los motores de búsqueda no pueden indexar fácilmente tus sitios web. También entregan una carga de JavaScript grande porque tienes que servir tu propio JavaScript junto con la biblioteca en sí.

2. Server-side Rendering and Downsides

Short description:

Las desventajas de no servir HTML son que resulta en tiempos de carga lentos y un panel de contenido grande llamado LCP. Para resolver esto, se utiliza el renderizado en el lado del servidor, con frameworks como Next.js y Nuxt. El renderizado en el lado del servidor te permite renderizar algunas partes de tu aplicación como HTML, mejorando el SEO y reduciendo los tiempos de carga. Sin embargo, aún puede resultar en servir una carga de JavaScript grande.

Junto con eso, no sirves ningún HTML. Por lo tanto, tienes todas las desventajas sin ninguna de las ventajas. La principal es que hay un panel de contenido grande llamado LCP, que es lento. Esto significa que tarda mucho tiempo en que el contenido sea visible para los usuarios.

La forma en que resolvemos esto en la industria es utilizando el renderizado en el lado del servidor. Todas estas bibliotecas tienen sus propios frameworks. React tiene Next, Vue tiene Nuxt, y todos ellos se basan en algo nuevo. Los beneficios son que renderizas algunas partes de tu aplicación como HTML y lo sirves a los usuarios. La obtención de datos puede ocurrir en el servidor. Con Next.js, puedes obtener datos una vez cuando se construye la aplicación, o cada vez que el usuario accede, que es lo que hace su función getServerSideProps. Esto permite un buen SEO para ti, porque junto con JavaScript también estás sirviendo HTML, y tiene un LCP más rápido. Un problema con esto es que aún sirves una carga de JavaScript muy grande que es posible que no necesites realmente. Estos frameworks dependen principalmente de la hidratación de la página completa.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Una Guía del Comportamiento de Renderizado de React
React Advanced Conference 2022React Advanced Conference 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
React es una biblioteca para "renderizar" UI a partir de componentes, pero muchos usuarios se encuentran confundidos acerca de cómo funciona realmente el renderizado de React. ¿Qué significan términos como "renderizado", "reconciliación", "Fibers", y "committing"? ¿Cuándo ocurren los renderizados? ¿Cómo afecta el Contexto al renderizado, y cómo las bibliotecas como Redux causan actualizaciones? En esta charla, aclararemos la confusión y proporcionaremos una base sólida para entender cuándo, por qué, y cómo React renderiza. Veremos: - Qué es realmente el "renderizado" - Cómo React encola los renderizados y el comportamiento de renderizado estándar - Cómo se utilizan las claves y los tipos de componentes en el renderizado - Técnicas para optimizar el rendimiento del renderizado - Cómo el uso del contexto afecta al comportamiento del renderizado - Cómo las bibliotecas externas se integran en el renderizado de React
Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix es un nuevo marco de trabajo web de los creadores de React Router que te ayuda a construir mejores y más rápidos sitios web a través de una sólida comprensión de los fundamentos de la web. Remix se encarga de las tareas pesadas como la renderización del servidor, la división de código, la precarga y la navegación, y te deja con la parte divertida: ¡construir algo increíble!
No resuelvas problemas, elimínalos
React Advanced Conference 2021React Advanced Conference 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Los humanos son solucionadores de problemas naturales y somos lo suficientemente buenos en eso que hemos sobrevivido a lo largo de los siglos y nos hemos convertido en la especie dominante del planeta. Debido a que somos tan buenos en eso, a veces también nos convertimos en buscadores de problemas, buscando problemas que podemos resolver. Aquellos que logran sus objetivos de la manera más exitosa son los eliminadores de problemas. Hablemos de la distinción entre resolver y eliminar problemas con ejemplos de dentro y fuera del mundo de la codificación.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
¿Tienes un producto grande construido por muchos equipos? ¿Estás luchando para lanzar a menudo? ¿Se convirtió tu frontend en un monolito inmantenible masivo? Si, como yo, has respondido sí a cualquiera de esas preguntas, ¡esta charla es para ti! Te mostraré exactamente cómo puedes construir una arquitectura de micro frontend con Remix para resolver esos desafíos.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
¿Demasiado JavaScript te está agobiando? Los nuevos marcos que prometen no usar JavaScript parecen interesantes, pero tienes una aplicación React existente que mantener. ¿Qué tal si Qwik React es tu respuesta para un inicio de aplicaciones más rápido y una mejor experiencia de usuario? Qwik React te permite convertir fácilmente tu aplicación React en una colección de islas, que pueden ser renderizadas en el servidor y rehidratadas con retraso, e incluso en algunos casos, se puede omitir la rehidratación por completo. Y todo esto de manera incremental sin una reescritura.
Documentación Full Stack
JSNation 2022JSNation 2022
28 min
Documentación Full Stack
Top Content
Los tutoriales interactivos basados en la web se han convertido en un elemento básico de los frameworks de front end, y es fácil ver por qué: a los desarrolladores les encanta poder probar nuevas herramientas sin el problema de instalar paquetes o clonar repositorios.Pero en la era de los meta-frameworks full stack como Next, Remix y SvelteKit, estos tutoriales solo llegan hasta cierto punto. En esta charla, veremos cómo nosotros, en el equipo de Svelte, estamos utilizando la tecnología web de vanguardia para repensar cómo nos enseñamos mutuamente las herramientas de nuestro oficio.

Workshops on related topic

Consejos sobre React Hooks que solo los profesionales conocen
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
Consejos sobre React Hooks que solo los profesionales conocen
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
La adición de la API de hooks a React fue un cambio bastante importante. Antes de los hooks, la mayoría de los componentos tenían que ser basados en clases. Ahora, con los hooks, estos son a menudo componentes funcionales mucho más simples. Los hooks pueden ser realmente simples de usar. Casi engañosamente simples. Porque todavía hay muchas formas en las que puedes equivocarte con los hooks. Y a menudo resulta que hay muchas formas en las que puedes mejorar tus componentes con una mejor comprensión de cómo se puede usar cada hook de React.Aprenderás todo sobre los pros y los contras de los diversos hooks. Aprenderás cuándo usar useState() versus useReducer(). Veremos cómo usar useContext() de manera eficiente. Verás cuándo usar useLayoutEffect() y cuándo useEffect() es mejor.
React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced Conference 2021React Advanced Conference 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.