Mi sto avvicinando alla fine di una fase di prototipazione / proof of concept per un progetto parallelo su cui sto lavorando e sto cercando di decidere su alcune decisioni di progettazione di applicazioni su larga scala. L'app è un sistema di gestione del progetto più adatto al processo di sviluppo agile. Una delle decisioni che devo prendere è se andare o meno con un'applicazione tradizionale a più pagine o un'applicazione a singola pagina.
Attualmente il mio prototipo è una tradizionale configurazione multi-pagina, tuttavia ho cercato di backbone.js di ripulire e applicare alcune strutture al mio codice Javascript (jQuery). Sembra che mentre backbone.js può essere utilizzato in applicazioni multipagina, brilla di più con le applicazioni a singola pagina. Sto cercando di trovare un elenco di vantaggi e svantaggi dell'utilizzo di un approccio di progettazione di applicazioni a singola pagina. Finora ho:
Vantaggi
-
Tutti i dati devono essere disponibili tramite una sorta di API - questo è un grande vantaggio per il mio caso di utilizzo, in quanto voglio comunque avere un'API per la mia applicazione. Al momento circa il 60-70% delle mie chiamate per ottenere / aggiornare i dati vengono effettuati tramite un'API REST. Fare un'applicazione a una sola pagina mi consentirà di testare meglio la mia API REST poiché l'applicazione stessa la userà. Significa anche che man mano che l'applicazione cresce, l'API stessa crescerà poiché questo è ciò che l'applicazione utilizza; non è necessario mantenere l'API come componente aggiuntivo dell'applicazione.
-
Applicazione più reattiva - poiché tutti i dati caricati dopo la pagina iniziale sono ridotti al minimo e trasmessi in un formato compatto (come JSON), le richieste di dati dovrebbero generalmente essere più veloci e il server eseguirà un po 'meno elaborazione.
Svantaggi
- Duplicazione del codice - ad esempio, codice del modello. Dovrò creare modelli sia sul lato server (PHP in questo caso) che sul lato client in Javascript.
- Logica di business in Javascript - Non posso fornire esempi concreti sul perché questo sarebbe male ma semplicemente non mi sembra giusto avere la logica di business in Javascript che chiunque può leggere.
- Perdite di memoria Javascript - poiché la pagina non si ricarica mai, possono verificarsi perdite di memoria Javascript e non saprei nemmeno da dove iniziare a eseguirne il debug.
Ci sono anche altre cose che sono una specie di spade a doppio taglio. Ad esempio, con le applicazioni a pagina singola, i dati elaborati per ciascuna richiesta possono essere molto meno poiché l'applicazione richiederà i dati minimi necessari per la richiesta specifica, tuttavia ciò significa anche che potrebbe esserci una richiesta molto più piccola per il server. Non sono sicuro che sia una cosa buona o cattiva.
Quali sono alcuni dei vantaggi e degli svantaggi delle applicazioni web a pagina singola che dovrei tenere a mente quando decido in che modo andare per il mio progetto?