Con marcos como AngularJS, KnockoutJS y EmberJS cada vez más utilizados, ¿las aplicaciones de una sola página (SPA) son realmente el futuro de las aplicaciones web? ¿Tiene sentido construir un sitio web / portal web bastante grande como un SPA?

Sí, SPA es futuro y lo seguirá siendo. SPA nació para crear aplicaciones web interactivas. La web anterior fue diseñada para leer información (noticias, artículos). No fue diseñado para reemplazar aplicaciones informáticas (correo electrónico, hoja de cálculo, procesador de textos, etc.).

Escribir aplicaciones nativas en muchas plataformas diferentes es tedioso, finalmente tenemos una plataforma de interfaz de usuario, que es HTML + JavaScript.

Ventajas de SPA

  1. Fácil de aislar la lógica del lado del cliente de la lógica del lado del servidor.
  2. Básicamente, es fácil aislar la IU y los datos (vista y modelo).
  3. Fácil de almacenar en caché gran parte de la aplicación.
  4. La interfaz de usuario se vuelve comprobable, puede crear fácilmente componentes de interfaz de usuario que se pueden probar y reutilizar de forma independiente.
  5. El código del lado del servidor también se vuelve comprobable, se hace fácil identificar la lógica del lado del servidor y escribir pruebas para verificar y validar.
  6. La carga en el servidor se reduce, ya que solo se transmiten datos por cada solicitud.

Si vemos la evolución empresarial de los servicios web. Nosotros, como empresas tecnológicas (especialmente las startups), adquirimos el hábito de la entrega de negocios en múltiples plataformas.

Hay algunas cosas a considerar en la forma en que se puede enfocar el inicio:

  • En los servidores, siempre buscamos construir un servidor no dedicado solo para servir la lógica de la aplicación, sino también para exponer la API REST.
  • En los clientes buscamos ofrecer un tiempo de comercialización rápido en múltiples plataformas: navegadores en factores de forma de múltiples dispositivos, aplicaciones telefónicas instalables. Siempre hay un argumento para utilizar una API totalmente nativa y abandonar Phonegap como shells para una sola aplicación de buscapersonas cuando buscamos una aplicación móvil instalable, pero en un escenario donde hay mucha lógica de datos y un corto tiempo de salida al mercado es útil solución para entregar aplicaciones como código común.
  • Estoy seguro de que la mayoría de las personas que han trabajado con aplicaciones web en evolución estarían de acuerdo, el negocio impulsa la evolución y repite los cambios en el flujo de la aplicación cliente. Por lo tanto, la separación de la preocupación es extremadamente importante en la entrega rápida de la aplicación. Por separación de inquietudes, no solo quiero decir que CSS, HTML y Javascript se mantienen por separado, sino que en una aplicación compleja, Javascript tiene que estar bien escrito para la susceptibilidad de los cambios.
  • Aunque hay un lado negativo, incluso con una entrega comprimida de dependencias estáticas como css / javascript para la página en la primera carga. Hay una gran ventaja en la velocidad con solo respuestas AJAX y sin redireccionamientos de página completa.
  • Si estamos buscando una aplicación habilitada para soporte fuera de línea, una vez más, una pila robusta en el cliente ayuda. Puede optimizar su capa de modelo para trabajar sin problemas con la tienda sin conexión y también con un servidor de back-end en vivo.
  • Luego hay otras cosas buenas como trabajar con accesorios, que viene con pilas como EmberJS.

También hay algunas desventajas,

  • Cuando tomamos el caso del SEO, la aplicación de buscapersonas individual pierde puntos.
  • Tenemos que elegir la pila más aplicable, desde una gama de opciones desde una biblioteca hasta una infraestructura completa.
  • Algunos marcos demasiado obstinados pueden necesitar poco trabajo cuando integramos complementos de terceros en la pila. (O este pequeño trabajo podría desviarse algunas veces de la filosofía central o los patrones de diseño seguidos por la pila).

En mi opinión, las aplicaciones de buscapersonas individuales son una buena estrategia. Hemos utilizado EmberJS enormemente para hacer de nuestra aplicación una aplicación de buscapersonas puramente única.