Frage

Ich denke, ich würde eine wirklich gute Erklärung zu einigen modellbezogenen Konzepten brauchen.

  1. Im Allgemeinen spielt das Modell, wie in Frameworks wie Robotlegs beschrieben, die Rolle eines Anwendungsstatusbesitzers oder eines Domänenstaathalters? Ich dachte ursprünglich, dass die Modelle vollständig domänenbasiert sind, dh UsmoDel, locationModel, die die gleiche Rolle spielen wie DAO -Klassen auf dem Server. Je mehr Quellcode ich mich anschaue, desto mehr sehe ich Dinge wie UserAccountModel, ShoppingCartModel usw. voller Eigenschaften und Methoden im Zusammenhang mit dem Status der Client -Anwendung, nicht des Domänenstatus.

  2. Ich sehe, dass die Leute sich nicht darum kümmern, den VO -Klassen komplexe Beziehungen hinzuzufügen, dh wenn ein Benutzer viele Fotos hat, wird die Fotossammlung offensichtlich aus der USVO -Klasse weggelassen. Stattdessen werden bei Bedarf eine Reihe von Photovo -Objekten vom Server geladen, basierend auf einem Serviceanruf mit der Benutzer -ID. Ist das eine Art Faustregel - im Allgemeinen VOS so "bloß" wie möglich zu halten? Erhöht dies nicht die mögliche Anzahl von Anrufen, die an den Server getätigt werden müssen, um alle Daten abzurufen? Fragmentiert das das Domänenmodell im Allgemeinen nicht? (Eine Entitätsbenutzerklasse auf dem Server hat immer eine Fotoseigenschaft)

  3. Bei so vielen Aufrufen des Servers ist es normal, einige Objekte zu holen, die sich möglicherweise bereits im Clientspeicher befinden. Ist es sinnvoll, einen clientseitigen Cache zu erstellen und zu prüfen, ob das abgerufene Objekt bereits vorhanden ist oder im Allgemeinen, dass der Overhead, es erneut zu erhalten vom Server. Andernfalls muss jedes auf dem Client -Seite gespeicherte Objekt betreut werden, wenn eine Änderung auftritt. Ich persönlich denke, dass der Overhead, ein Objekt vom Server zu erhalten, das bereits zuvor aufgegriffen wurde, nicht so groß ist. Besser frische und synchronisierte Daten haben, würde ich sagen.

War es hilfreich?

Lösung

Ich glaube nicht, dass Ihre Frage verantwortlich ist, weil so viele der Antworten "es hängt davon ab". Es hängt von der Anwendung ab, die Sie aufbauen, und die Bedürfnisse der Benutzeroberfläche.

Ich verstehe Ihre Unterscheidung zwischen "Domain State" und "Anwendungsstatus" nicht wirklich. Ich glaube jedoch, dass sich jede in der Benutzeroberfläche implementierte "Wertungsobjekt" -Stilklassen darauf konzentrieren sollte, den Zustand spezifischer Ansichten zu halten. Es ist äußerst selten, dass eine einzelne Ansicht eine eins -zu -Eins -Beziehung zu Datenbanktabellen ist. Daher sind meine UI -Datenobjekte möglicherweise nicht identisch mit Server -Seiten -Datenobjekten. Obwohl es sehr häufig ist, dass ich UI -Objekte mit AMF auf Server -Seitenobjekte zuordnen werde. Dies bedeutet jedoch nicht, dass jedes Objekt in der Benutzeroberfläche die Serverseite implementiert und jedes Serverobjekt auf der Benutzeroberfläche implementiert wird.

Ich sehe, dass die Menschen sich nicht darum kümmern, den VO -Klassen komplexe Beziehungen hinzuzufügen.

Ich bin mir nicht sicher, wo du das siehst; Ich werde das oft genau tun. Es hängt jedoch davon ab, wie die Ansicht angezeigt werden soll. Wenn die Ansicht nicht viele Fotos im Zusammenhang mit dem Benutzer anzeigt, werde ich keinen Remote -Anruf tätigen, um die Benutzerinformationen mit allen Fotos abzurufen.

Bei so vielen Aufrufen des Servers ist es normal, einige Objekte zu holen, die sich möglicherweise bereits im Clientspeicher befinden.

Es hängt davon ab, ob. Ich würde sagen, dass die Apps, die ich schreibe, die Anrufe an den Server nach Bedarf durchgeführt werden. und Versuche werden unternommen, um sie gegebenenfalls einzuschränken. Wenn ich bereits Daten abgerufen und sie auf den Client zwischengespeichert habe, werde ich versuchen, diesen Cache zu verwenden, anstatt die Daten erneut abzurufen.

Ich werde meine ursprüngliche Bewertung wiederholen: Ich denke, die Antworten auf die meisten Ihrer Fragen hängen von der Situation ab und hängen von der App ab. Sie scheinen mit überall breiten Verallgemeinerungen darüber zu beginnen, wie die Dinge gemacht werden. Ich glaube jedoch nicht, dass sie universelle Wahrheiten sind. Der Kampf des Entwicklers um Anwendungsarchitekturprobleme ständig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top