Eduardo Alvarez logo
Publicado el

Introducción a JAMStack

¿Ves alguna errata? Haz una pull request

¿Qué es un Stack?

Un stack en programación a una colección de tecnologías configuradas para trabajar entre si. Creo y sin miedo a equivocarme que el stack más conocido es el de LAMP-Stack (Por sus siglas de Linux, Apache, MySQL y Php). Otro stack muy conocido es el MEAN-Stack que viene de las tecnologías MongoDB, Express, Angular y Nodejs. Posteriormente, con la aparición de React, se crea un nuevo stack ques es básicamente el mismo que el anterior, pero esta vez, cambiamos Angular por React. quedando como MERN-Stack. Con la aparición de Vuejs, este último stack sufrió un último cambio, cambiando a React por Vue, y por un momento el stack se llamó MEVN hasta que la comunidad re-ordenó las siglas quedando con el nombre de VENoM.

stacks

¿Qué es JAM?

JAM es una palabra que está compuesta por tres palabras. La J viene de JavaScript, la A viene de API y la M viene de Markup compilado.

Con JavaScript se busca que la lógica de la aplicación se ejecute en el Frontend y no en el Backend como tradicionalmente se trabaja en una aplicación web.

Las APIs se refieren a la o a las fuentes de datos que se utilizarán para la aplicación. Tradicionalmente utilizábamos las base de datos como fuentes de información, ahora, con esta forma de desarrollo, tendremos una o muchas APIs haciendo consultas a la información.

Cuando hablamos de Markup compilado, nos referimos a las vistas compiladas o generadas una sola vez, en vez de hacerlo con cada respuesta al momento de hacer la consulta al servidor (como tradicionalmente se hace).

stacks

Buena idea

Como en todas las arquitecturas de desarrollo, el JAM funcionará mejor en algunos proyectos que en otros. No por eso vamos a encasillar a que SOLO en estos tipos de proyectos JAM funcionará , pero si es una información a considerar.

Creo que el escenario más popular para implementar este stack son los Blogs o las páginas web personales de presentación ya que esta arquitectura va muy bien con aplicaciones que no se actualizan constantemente o páginas donde la actualización de la información corresponde a una nueva vista. También funciona bastante bien con aplicaciones de ventas en linea, considerando que bajo esta estructura, el tiempo de respuesta al mostrar una vista en el navegador es mucho más rápida (ya que la vista está compilada/creada y el servidor solo tiene que encontrar el archivo y devolverlo al navegador). Otros escenarios donde el stack de JAM puede servir son las landing pages y los sitios de documentación

ejemplos

No tan buena idea

A diferencia del punto anterior, este stack no está recomendado para sitio web donde tienen muchas páginas (muchas! - ejemplo wikipedia) o donde su información es actualizada constantemente, esto debido a que los proyectos realizados con JAM necesariamente deben pasar por un proceso de compilación lo cual puede ser un proceso que tome bastante tiempo y si son muchas, muchas, muchas páginas, mantenerlas puede ser un proceso muy complicado. Una consideración adicional es saber si es que la aplicación depende de variables que no se pueden compilar ya que se desconocen sus valores, ejemplo de estos son Los datos del usuario que inició sesión.

Consideraciones finales

Recuerda que las tecnologías deben de ser tomadas con prudencia y que las “normas” no están escritas en piedra. El que hoy en día algo no sea recomendado, no significa que nunca lo será, ya que las tecnologías avanzan día a día a pasos agigantados. Lo que queda es poder investigar y utilizar las arquitecturas según los requerimientos del negocio.

Para seguir investigando

Si te interesó el nuevo stack y quieres seguir investigando por tu cuenta, te recomiendo los siguientes sitios de interés: