Domanda

Credo che avrei avuto bisogno di un po 'davvero buona spiegazione su alcuni concetti Modello correlati.

  1. In generale fa il modello, come descritto da framework come Robotlegs svolgere il ruolo di un titolare di stato dell'applicazione, o di un titolare di stato di dominio? Ho inizialmente pensato che i modelli sono completamente dominio basato, cioè UserModel, LocationModel, che svolgono lo stesso ruolo che le classi DAO giocano sul server. Quanto più il codice sorgente sto guardando, però, più vedo cose come UserAccountModel, ShoppingCartModel, ecc, ricca di proprietà e metodi relativi allo stato dell'applicazione client, non lo stato del dominio.

  2. Vedo che le persone non si preoccupano di aggiungere relazioni complesse alle classi VO, vale a dire se un utente ha un sacco di foto, la foto collezione è ovviamente omesso dalla classe UserVO. Invece, un gruppo di oggetti PhotoVO vengono caricati dal server quando necessario, sulla base di una chiamata di servizio con l'ID utente. che è una sorta di una regola empirica - in VO keeping generali come "nudo" il più possibile? Non che aumentare il numero possibile di chiamate che devono essere fatte al server per recuperare tutti i dati? Peraltro, non quel frammento il modello di dominio in generale? (Un'entità classe User sul server avrà sempre una foto di proprietà)

  3. Con così tante chiamate al server, è normale per andare a prendere alcuni oggetti che potrebbero essere già sulla memoria del client. Ha senso fare una cache lato client, e verificare se l'oggetto che sta per essere recuperata è già lì, o, in generale, l'overhead di ottenere ancora una volta sarà ripagato dai benefici di ottenere un oggetto completamente sincronizzato dal server. In caso contrario, ogni oggetto memorizzato nella cache lato client deve essere curato quando si verifica un cambiamento. Personalmente ritengo che il sovraccarico di ottenere un oggetto dal server, che potrebbe già raccolto prima che non è così grande. Meglio avere dati freschi e sincronizzati direi.

È stato utile?

Soluzione

Non credo che la tua domanda è responsabile, perché così molte delle risposte sono "dipende". Dipende l'applicazione che si sta costruendo e le esigenze della UI.

Io non capisco la tua distinzione tra "dominio dello Stato" e "Stato di applicazione." Tuttavia, credo che tutte le classi di stile "Valore oggetto" implementate nell'interfaccia utente dovrebbe concentrarsi sulla tenuta dello stato di punti di vista specifici. E 'estremamente raro che un singolo punto di vista è una relazione uno a uno per le tabelle del database. In quanto tale, i miei oggetti di interfaccia utente di dati non possono essere identici a oggetti dati lato server. Anche se, è molto comune che io mappa UI oggetti agli oggetti lato server utilizzando AMF. Ma, ciò non significa che ogni oggetto e l'interfaccia utente è implementata lato server e ogni oggetto server è implementato sull'interfaccia utente.

Vedo che le persone non si preoccupano di aggiungere relazioni complesse a le classi VO,

Non sono sicuro di dove si vede che; Io spesso fare esattamente questo. Tuttavia, dipende da quello che si suppone la vista da visualizzare. Se la vista non visualizza un sacco di foto relative all'utente, quindi non voglio fare una chiamata remota per recuperare le informazioni utente con tutte le loro foto.

Con così tante chiamate al server, è normale per andare a prendere alcuni oggetti che potrebbe essere già in memoria del client.

Dipende. Direi che le applicazioni che scrivo, le chiamate al server sono fatte secondo le necessità; e si cerca di limitare loro come appropriato. Se ho già dati recuperati e lo hanno memorizzato nella cache sul client, quindi ho intenzione di provare ad utilizzare tale cache invece di recuperare nuovamente i dati.

Io ribadire la mia valutazione originale: Credo che le risposte alla maggior parte delle domande dipenderà dalla situazione, e dipendono dalla app. Lei sembra iniziare con iale ampie generalizzazioni su come le cose sono fatte. Tuttavia, non credo che siano verità universali. La lotta di sviluppatore sui problemi dell'architettura applicativa per tutto il tempo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top