Estoy llegando al final de una fase de creación de prototipos / prueba de concepto para un proyecto paralelo en el que estoy trabajando, y estoy tratando de decidir sobre algunas decisiones de diseño de aplicaciones a gran escala. La aplicación es un sistema de gestión de proyectos más adaptado al proceso de desarrollo ágil. Una de las decisiones que debo tomar es si ir o no con una aplicación tradicional de varias páginas o una aplicación de una sola página.
Actualmente mi prototipo es una configuración tradicional de varias páginas, sin embargo, he estado buscando en backbone.js para limpiar y aplicar algo de estructura a mi código Javascript (jQuery). Parece que mientras backbone.js se puede usar en aplicaciones de varias páginas, brilla más con aplicaciones de una sola página. Estoy tratando de llegar a una lista de ventajas y desventajas de usar un enfoque de diseño de aplicaciones de una sola página. Hasta ahora tengo:
Adventages
-
Todos los datos deben estar disponibles a través de algún tipo de API. Esta es una gran ventaja para mi caso de uso, ya que quiero tener una API para mi aplicación de todos modos. En este momento, alrededor del 60-70% de mis llamadas para obtener / actualizar datos se realizan a través de una API REST. Hacer una aplicación de una sola página me permitirá probar mejor mi API REST ya que la aplicación la usará. También significa que a medida que la aplicación crece, la API en sí misma crecerá, ya que eso es lo que utiliza la aplicación; no es necesario mantener la API como complemento de la aplicación.
-
Aplicación más receptiva: dado que todos los datos cargados después de la página inicial se mantienen al mínimo y se transmiten en un formato compacto (como JSON), las solicitudes de datos generalmente deben ser más rápidas y el servidor hará un poco menos de procesamiento.
Desventajas
- Duplicación de código, por ejemplo, código de modelo. Voy a tener que crear modelos tanto en el lado del servidor (PHP en este caso) como en el lado del cliente en Javascript.
- Lógica de negocios en Javascript: no puedo dar ejemplos concretos de por qué esto sería malo, pero no me parece correcto tener una lógica de negocios en Javascript que todos puedan leer.
- Fugas de memoria de Javascript: ya que la página nunca se vuelve a cargar, las fugas de memoria de Javascript pueden ocurrir, y ni siquiera sabría por dónde empezar a depurarlas.
También hay otras cosas que son como espadas de doble filo. Por ejemplo, con aplicaciones de una sola página, los datos procesados para cada solicitud pueden ser mucho menos, ya que la aplicación solicitará los datos mínimos que necesita para la solicitud en particular, sin embargo, también significa que podría haber una solicitud mucho más pequeña para el servidor. No estoy seguro de si eso es algo bueno o malo.
¿Cuáles son algunas de las ventajas y desventajas de las aplicaciones web de una sola página que debo tener en cuenta al decidir el camino que debo seguir para mi proyecto?