Entonces, ¿qué es exactamente Jamstack? Jamstack es una arquitectura moderna para crear sitios web y aplicaciones. TheJam en Jamstack significa JavaScript, API y marcado HTML. A diferencia de los sitios web creados con WordPress o Drupal, los sitios Jamstack no requieren una base de datos. Incluso puede omitir el servidor web y optar por alojar su sitio utilizando un servicio de almacenamiento de objetos y una red de entrega de contenido (o CDN). Para comprender por qué Jamstack es revolucionario, es esencial compararlo con la pila LAMP convencional, que ha sido el enfoque predominante para el desarrollo web durante los últimos 15 años. La pila LAMP comprende Linux (el sistema operativo que alimenta la mayoría de los servidores web), Apache (el software del servidor en esas máquinas Linux), MySQL (la base de datos que almacena datos de aplicaciones web) y PHP/Perl (los lenguajes utilizados para el código del lado del servidor). . Cuando visita un sitio web basado en LAMP en su navegador, el servidor web ejecuta dinámicamente el código del lado del servidor, genera la página web en el momento y recupera los datos necesarios de la base de datos MySQL. La arquitectura LAMP permite a los desarrolladores crear contenido dinámico e interactivo. sitios web, pero también requiere un servidor web potente, y cuanto más tráfico recibe un sitio, más potencia informática del lado del servidor necesita. Incluso con un servidor con todas las funciones, las páginas web dinámicas pueden tardar mucho en crearse y cargarse. En un mundo de personas con poca capacidad de atención, que a menudo navegan por la web en sus teléfonos, ese retraso se ha convertido en un gran problema. Jamstack nació como parte del movimiento de sitios web estáticos, que surgió en 2015 como una reacción contra esta tradicional modelo de cómo debería funcionar un sitio web. Veamos algunas de sus características principales: Compilación de la interfaz de usuario: la ventaja de Jamstack Jamstack enfatiza la compilación de la interfaz de usuario, esforzándose por hacer el trabajo correcto en el momento adecuado. Al prerenderizar todo el sitio y aprovechar los activos estáticos a través de redes de entrega de contenido (CDN), los desarrolladores logran tiempos de carga más rápidos y mayor confiabilidad. Frontend desacoplado para mayor simplicidad La arquitectura desacopla el frontend de los servicios backend, lo que resulta en un contrato claro para la comunicación de la interfaz de usuario con el sistema. Esta simplificación reduce las complejidades y facilita la comprensión de cómo los cambios externos afectan el funcionamiento del frontend. Al desacoplar los servicios necesarios para operar un sitio, cada componente puede ser más fácil de entender, puede intercambiarse o actualizarse de forma independiente y puede designarse como competencia de especialistas dedicados, ya sea dentro de una organización o como un tercero. Necesario: aplicaciones web dinámicas y personalizadas. Jamstack no se limita al renderizado previo. También permite a los desarrolladores solicitar datos desde el frontend, lo que permite la creación de aplicaciones web dinámicas y personalizadas. La carga de datos asincrónica potencia experiencias ricas e interactivas. Un buen ejemplo es la interfaz de usuario de Netlify, que en sí misma es una aplicación Jamstack creada y ejecutada en Netlify. Precompila el shell de una aplicación y luego utiliza solicitudes asincrónicas para acceder a la API y cargar datos sobre sus usuarios y sus sitios. Ya sea que esté utilizando REST, GraphQL o WebSockets, si está precompilando la mayor cantidad posible de interfaz de usuario y cargando datos para brindarles a sus usuarios una experiencia dinámica y personalizada, entonces estará enviando la arquitectura Jamstack. Representación persistente distribuida ( DPR): el enfoque Distributed Persistent Rendering o DPR es una arquitectura para compilaciones incrementales que puede ser compatible en casi todos los marcos y generadores de sitios Jamstack, desde 11ty hasta Nuxt y Next.js. DPR reducirá drásticamente los tiempos de construcción inicial para sitios más grandes, resolviendo una crítica central a la generación de sitios estáticos. Es un enfoque para compartir el trabajo de representar vistas de páginas y conservarlas como parte de la última implementación. Algunas páginas se muestran como parte de una compilación, otras se muestran bajo demanda cuando se solicitan por primera vez a través de su URL. De esta manera, los tiempos de construcción se pueden mantener manejables incluso para sitios muy grandes, ya que las páginas nominadas pueden posponer su procesamiento hasta que se soliciten por primera vez. Acelerar sitios más grandes Para abordar el desafío de los tiempos de construcción de sitios más grandes, se pueden usar nuevas innovaciones como esbuild, Vite y Snowpack. Haber emergido. Reducen significativamente los tiempos de construcción, lo que permite crear sitios aún más masivos con facilidad. Pero prerenderizar un sitio web más grande también puede significar esperar varios minutos cada vez que hay una nueva implementación. Es por eso que tenemos la velocidad bruta de esbuild, el nuevo «compilador de JavaScript extremadamente rápido». Esbuild puede completar un paquete de producción que Parcel o Webpack puede tardar más de un minuto en compilar en menos de un segundo. Y las herramientas de creación como Vite y Snowpack se basan en módulos ES nativos para que el desarrollo local parezca casi instantáneo. Los CMSCMS sin cabeza para sitios Jamstack funcionan de manera diferente y generalmente se les conoce como sin cabeza. Un CMS sin cabeza ofrece una interfaz de usuario para ingresar y administrar contenido y una base de datos u otros medios para almacenarlo, pero no genera código HTML para que un navegador lo analice. En cambio, las páginas HTML estáticas del sitio web utilizan JavaScript para realizar llamadas a las API del CMS, y el CMS devuelve el contenido en un formato que JavaScript puede convertir en una página web. Este sistema separa completamente el contenido de la presentación, lo que por supuesto es un ideal de programación desde hace mucho tiempo. Debido a que el CMS tiene una API accesible, varias páginas web pueden utilizarla fácilmente. Por ejemplo, si ha creado versiones independientes para dispositivos móviles, de escritorio y de relojes inteligentes de su sitio web, todas estas versiones pueden acceder al mismo contenido almacenado en el CMS. Ventajas de Jamstack Seguridad: la mayoría de los ciberataques se centran en servidores o bases de datos. El marco JAMstack los elimina por completo. Como todos los elementos están desacoplados, no hay posibilidad de que se produzca un ataque malicioso al marco, a diferencia de CMS. Escalabilidad: como no hay servidores y usted depende de una CDN potente, no tendrá problemas para expandirse. Otra razón es todo el trabajo pesado realizado por parte del cliente. Mejor experiencia de desarrollador: los desarrolladores pueden usar su propia pila tecnológica; por lo tanto, no es necesario que dependan de uno en particular. Además, el desacoplamiento de los tres elementos en JAMstack les ofrece una inmensa flexibilidad para desarrollar mejores aplicaciones. Velocidad: como las llamadas relacionadas con la base de datos o el servidor son muy limitadas en JAMstack, la velocidad de carga de la página aumenta notablemente. Limitaciones de Jamstack El ecosistema JAMstack no es perfecto, solo como cualquier otra cosa. Es importante tener en cuenta algunas limitaciones. Esto consiste en: Largos tiempos de construcción: un inconveniente de los sitios web de JAMstack es que tienes que reconstruir todo el sitio si cambias una página. Esto puede resultar lento para sitios web con miles de páginas, como es de esperar. Si tiene habilidades de desarrollo, puede resolver este problema usando compilaciones incrementales, generando el sitio web con Gatsby o usando Next.js. No es amigable para principiantes: aprovechar al máximo JAMstack requiere más conocimiento que solo los fundamentos del desarrollo web, por lo que no es Es muy fácil de usar para principiantes. El futuro de Jamstack es brillante y promete sitios de mayor escala, aplicaciones web dinámicas y una mayor inclusión entre los equipos de desarrollo. ¡Acepte el poder de Jamstack y abra un nuevo ámbito de posibilidades para el desarrollo web! Sigamos superando los límites y construyendo juntos una mejor web.

Source link