Modelli per applicazioni web ajax-heavy

12

Fino ad ora, sono stato un grande fan del pattern MVC per lo sviluppo di applicazioni web. Per il web, ho sviluppato principalmente in PHP (con i framework Kohana e CodeIgniter) e Ruby (RoR).

Dato che le mie applicazioni diventano più pesanti sul lato Ajax (app a pagina singola, ecc.) ho notato che non posso fare a meno di tradire i concetti di base di MVC: JavaScript sta facendo la maggior parte dei lavori; chiamare i controller solo per chiedere viste o più codice js / json sembra sbagliato.

Dopo aver cercato di mantenere tutti i lavori di routing nei controller, ora li ho divisi fondamentalmente tra loro e Javascript (cioè dal PoV del framework, parte delle visualizzazioni). Quando si chiede json, la subversione MVC appare ancora più ovvia: il codice js che esegue la richiesta è il controller; il controller del framework funge semplicemente da proxy per i dati del modello, quello che sto chiedendo in realtà.

Quindi, che cosa dovrei esaminare?

Stavo pensando ad applicazioni pure-javascript, ad esempio con backbone.js e un database json-spitting basato su documenti (couchDB) come backend, ma adoro i miei database relazionali.

Un'altra opzione sarebbe la seguente: mi piacerebbe solo creare "modelli instradati" in PHP / ruby / go / whatnot. Quelli analizzeranno la richiesta, chiameranno il db, restituiranno alcuni json.

Questo approccio mi sembra interessante ma manca di documentazione sostanziale o analisi accademica, quindi ho un po 'paura del salto.

idee?

    
posta cbrandolino 10.09.2011 - 21:35
fonte

1 risposta

1

Se non ci sono analisi accademiche, fallo da solo. Sperimenta sul tuo prossimo progetto su piccola scala e guarda come ti piace. Leggi il saggio di Paul Graham sul perché ha scelto Lisp per la sua startup, anche se non era comunemente usato. link

Ci sono molti framework JavaScript MVC là fuori. Se vuoi creare un'applicazione principalmente javascript, fallo.

Costruisci un'API riposante in rotaie o qualsiasi struttura tu usi che sia solo un wrapper per il database, e non dovrai rinunciare al tuo database relazionale. Basta chiamare l'API come si chiamerebbe il database se si trattasse di un'applicazione logica basata su server.

Inoltre, se costruisci la tua app in questo modo, puoi creare facilmente il supporto offline.

    
risposta data 12.09.2011 - 03:04
fonte

Leggi altre domande sui tag