Mi sto avvicinando alla fine di una fase di prototipazione / dimostrazione del concetto per un progetto laterale a 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 utilizzare o meno un'applicazione tradizionale a più pagine o un'applicazione a pagina singola.
Attualmente il mio prototipo è una configurazione multi-pagina tradizionale, tuttavia ho cercato backbone.js per ripulire e applicare una struttura al mio codice Javascript (jQuery). Sembra che mentre backbone.js possa essere utilizzato in applicazioni multipagina, brilla di più con le applicazioni a pagina singola. Sto cercando di elaborare un elenco di vantaggi e svantaggi dell'utilizzo di un approccio alla progettazione di applicazioni a pagina singola. Finora ho:
vantaggi
Tutti i dati devono essere disponibili tramite una sorta di API: questo è un grande vantaggio per il mio caso d'uso in quanto voglio avere comunque un'API per la mia applicazione. In questo momento circa il 60-70% delle mie chiamate per ottenere / aggiornare i dati viene effettuato tramite un'API REST. Fare un'applicazione a pagina singola mi consentirà di testare meglio la mia API REST poiché l'applicazione stessa la utilizzerà. 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à leggermente meno elaborazioni.
svantaggi
- Duplicazione del codice, ad esempio il codice del modello. Dovrò creare modelli sia sul lato server (PHP in questo caso) sia sul lato client in Javascript.
- Logica aziendale in Javascript - Non posso fornire esempi concreti sul perché ciò sarebbe negativo, ma non mi sembra giusto avere una logica aziendale in Javascript che chiunque possa leggere.
- Perdite di memoria Javascript: poiché la pagina non viene mai ricaricata, possono verificarsi perdite di memoria Javascript e non saprei nemmeno da dove iniziare 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 ogni richiesta possono essere molto meno poiché l'applicazione richiederà i dati minimi necessari per la richiesta particolare, tuttavia significa anche che potrebbero esserci molte più piccole richieste da il server. Non sono sicuro che sia una cosa positiva o negativa.
Quali sono alcuni dei vantaggi e degli svantaggi delle applicazioni Web a pagina singola che dovrei tenere a mente quando decido in che direzione devo andare per il mio progetto?