¿Cuál es la última tendencia en arquitecturas de aplicaciones web?

Algunos cambios importantes en la arquitectura de la aplicación web desde 3 niveles incluyen:

  • Arquitectura orientada a servicios, en la que gran parte del código para la aplicación completa existe como servicios, cada uno con su propia API http. Entonces, una parte del código puede realizar una solicitud a otra parte del código, que a menudo se ejecuta en un servidor web diferente. La API se organiza con frecuencia de acuerdo con los principios de diseño REST. La solicitud y la respuesta generalmente son solo datos, no necesariamente una presentación amigable para los humanos.
  • Aplicación de una sola página, en la que la interfaz de usuario web es proporcionada por una rica aplicación Javascript, que permanece en el navegador del usuario durante muchas interacciones del usuario. La IU puede realizar muchas solicitudes asíncronas o síncronas al servidor web sin volver a cargar la página. Utiliza AJAX o WebSockets para esta comunicación. Esto le brinda al usuario una experiencia más fluida y natural, sin ser interrumpido por la carga de páginas.

Juntas, estas dos tendencias han permitido que las aplicaciones web se diseñen para múltiples plataformas. Esto es importante en el mundo moderno cuando muchos usuarios usan tabletas o dispositivos telefónicos, en lugar de navegadores de pantalla completa en computadoras portátiles o de escritorio. La interfaz de usuario se puede diseñar para que se ajuste a pantallas más pequeñas, incluso si la mayoría del código de la aplicación sigue siendo el mismo.

En los últimos 3 a 4 años ha habido un cambio tremendo en las tecnologías web que se utilizan en todo el mundo. Cuando comencé mis años de licenciatura en 2009, las tecnologías utilizadas en aquel entonces apenas se usan en la actualidad y no se han construido nuevas páginas modernas.

Con la introducción de tecnologías modernas de front-end como Angular, React, Redux, etc., el mundo se está moviendo hacia aplicaciones de una sola página. Ahora Angular 2 es otra adición a eso.

Las aplicaciones de una sola página hacen que su página sea increíblemente rápida porque todo el javascript se carga solo una vez y todo el trabajo se realiza mediante llamadas API de descanso.

En backend para frameworks de descanso generalmente es Ruby on Rails, Django y ahora Node con express.

Básicamente, la página web que hemos dividido en 2 proyectos separados, un proyecto es el front-end que involucra a técnicos como angular, react, redux, flux, webpack, gruñido, trago y muchos más; y otro es un proyecto para back-end que se ocupa en ROR, Django y otros marcos.

Pero, aunque los SPA son rápidos y sí mejoran la experiencia UX pero a un precio. Tenemos que ocuparnos del SEO por nuestra cuenta, ya que los bots de los motores de búsqueda analizan el html estático y no el dinámico (Google en 2015 anunció que ahora el bot también analiza JS), pero los bots de Yahoo y Bing todavía no están allí. Entonces viene el concepto de pre-renderizado donde reaccionar es súper genial.

La última tendencia es la arquitectura Flux que React popularizó. Cuando otras arquitecturas permitieron que existiera un flujo de comunicación bidireccional entre vistas y controladores, la arquitectura Flux decidió que los flujos de datos unidireccionales eran más fáciles de razonar.

Cada vez que escuche la frase “más fácil de razonar”, sabe que se ha aventurado en el ámbito de la programación funcional. Esta arquitectura se basa en principios funcionales.

Elm ya tenía su propia arquitectura simple cuando React hizo que todos se pusieran de pie y se dieran cuenta. La arquitectura de Elm continúa ganando notoriedad y popularidad. Desde entonces, esta idea de datos unidireccionales ha influido en muchos: Om, Re-frame, Redux y Cycle.js, por nombrar algunos. Cada biblioteca escogió y eligió qué aspectos enfatizar. Como resultado, se han intercambiado ideas y este concepto continúa evolucionando. Elm recientemente se despidió de FRP. Sus ideas centrales permanecen, pero la esperanza es que el nuevo enfoque sea más simple.