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 mayor escala. La aplicación es un sistema de gestión de proyectos adaptado más al proceso de desarrollo ágil. Una de las decisiones que debo tomar es si usar o no 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 alguna estructura a mi código Javascript (jQuery). Parece que si bien backbone.js se puede usar en aplicaciones de varias páginas, brilla más con aplicaciones de una sola página. Estoy tratando de encontrar una lista de ventajas y desventajas de usar un enfoque de diseño de aplicaciones de una sola página. Hasta ahora tengo:
Ventajas
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 de todos modos quiero tener una API para mi aplicación. 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 misma la usará. También significa que a medida que la aplicación crece, la API en sí crecerá, ya que eso es lo que usa 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 deberían ser más rápidas y el servidor procesará un poco menos.
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 empresarial en Javascript: no puedo dar ejemplos concretos de por qué esto sería malo, pero no me parece correcto tener una lógica empresarial en Javascript que cualquiera pueda leer.
- Pérdidas de memoria de Javascript: dado que la página nunca se recarga, pueden ocurrir pérdidas de memoria de Javascript, y ni siquiera sabría por dónde empezar a depurarlas.
También hay otras cosas que son una especie de espadas de doble filo. Por ejemplo, con aplicaciones de una sola página, los datos procesados para cada solicitud pueden ser mucho menores, 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 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 qué camino tomar para mi proyecto?