Ich interessiere mich für Artikel, die konkrete Informationen über zustandsloses und zustandsbehaftetes Design in der Programmierung enthalten. Ich bin interessiert, weil ich mehr darüber erfahren möchte, aber ich kann wirklich keine guten Artikel darüber finden. Ich habe Dutzende von Artikeln im Web gelesen, in denen das Thema vage behandelt wird, oder sie sprechen über Webserver und Sitzungen - bei denen es auch um zustandsbehaftete oder zustandslose Entwürfe geht, aber ich interessiere mich für die zustandslose oder zustandsbehaftete Gestaltung von Attributen beim Codieren . Beispiel: Ich habe gehört, dass BL-Klassen von Natur aus zustandslos sind, Entitätsklassen (oder zumindest so nenne ich sie - wie Person (ID, Name, ..)) sind zustandsbehaftet usw.
Ich denke, es ist wichtig zu wissen, weil ich glaube, wenn ich es verstehen kann, kann ich besseren Code schreiben (z. B. Granularität im Auge).
Wie auch immer, ganz kurz, hier ist, was ich über Stateful vs Stateless weiß:
Stateful (wie WinForms): Speichert die Daten zur weiteren Verwendung, schränkt jedoch die Skalierbarkeit einer Anwendung ein, da sie durch CPU- oder Speicherbeschränkungen begrenzt ist
Statuslos (wie ASP.NET - obwohl ASP versucht, mit ViewStates statusbehaftet zu sein): Nach Abschluss der Aktionen werden die Daten übertragen und die Instanz an den Thread-Pool (amorph) zurückgegeben.
Wie Sie sehen können, handelt es sich um ziemlich vage und begrenzte Informationen (und sie konzentrieren sich ganz auf die Serverinteraktion). Ich wäre Ihnen sehr dankbar, wenn Sie mir weitere leckere Informationen liefern könnten :)
quelle
Staatenlos bedeutet, dass es keine Erinnerung an die Vergangenheit gibt. Jede Transaktion wird so ausgeführt, als würde sie zum ersten Mal ausgeführt.
Stateful bedeutet, dass es eine Erinnerung an die Vergangenheit gibt. Frühere Transaktionen werden gespeichert und können sich auf die aktuelle Transaktion auswirken.
Staatenlos:
Staatsbürgerlich:
Siehe unter: /software/101337/whats-the-difference-between-stateful-and-stateless
quelle
Eine zustandsbehaftete App speichert Informationen darüber, was seit dem Start passiert oder geändert wurde. Alle öffentlichen Informationen darüber, in welchem "Modus" es sich befindet oder wie viele Datensätze verarbeitet wurden oder was auch immer, machen es zustandsbehaftet.
Zustandslose Apps legen keine dieser Informationen offen. Sie geben jedes Mal dieselbe Antwort auf dieselbe Anforderung, Funktion oder denselben Methodenaufruf. HTTP ist in seiner Rohform zustandslos. Wenn Sie eine bestimmte URL abrufen, erhalten Sie (theoretisch) jedes Mal dieselbe Antwort. Die Ausnahme ist natürlich, wenn wir anfangen, Statefulness hinzuzufügen, z. B. mit ASP.NET-Webanwendungen :) Wenn Sie jedoch an eine statische Website mit nur HTML-Dateien und Bildern denken, wissen Sie, was ich meine.
quelle
Das Adjektiv Stateful oder Stateless bezieht sich nur auf den Zustand der Konversation, es steht nicht im Zusammenhang mit dem Funktionskonzept, das dieselbe Ausgabe für dieselbe Eingabe liefert. In diesem Fall wäre jede dynamische Webanwendung (mit einer Datenbank dahinter) ein Stateful Service, was offensichtlich falsch ist. In diesem Sinne implementiere ich einen statusbehafteten Dienst, wenn ich die Aufgabe anvertraue, den Konversationsstatus in der zugrunde liegenden Technologie beizubehalten (z. B. eine Coockie- oder http-Sitzung), aber wenn alle erforderlichen Informationen (der Kontext) als Parameter übergeben werden. m Implementierung eines zustandslosen Dienstes. Es sollte beachtet werden, dass wir, selbst wenn der übergebene Parameter eine "Kennung" des Konversationsstatus ist (z. B. ein Ticket oder eine Sitzungs-ID), immer noch unter einem zustandslosen Dienst arbeiten.
quelle
session identifier
Anfrage als zustandslos angesehen werden kann. Meiner Ansicht nach würde ein solcher Fall als zustandsbehaftet angesehen. Wenn Sie jedoch immer eintoken
für den Benutzer übergeben, aber keinen anderen Status als den zustandslosen Status beibehalten. Fühlt sich aber zustandsbehaftet XD. Das ist so verwirrend.Online von einem Konto auf ein anderes Konto überwiesenes Geld ist zustandsbehaftet, da das empfangende Konto Informationen über den Absender enthält. Bei der Übergabe von Bargeld von einer Person an eine andere Person ist diese Transaktion zustandslos, da nach Erhalt des Bargeldes die Identität des Gebers mit dem Bargeld nicht vorhanden ist.
quelle
Nur um die Beiträge anderer hinzuzufügen ... Eine andere Möglichkeit besteht darin, sie aus der Sicht eines Webservers und der Parallelität zu betrachten ...
HTTP ist aus einem bestimmten Grund zustandslos ... Im Fall eines Webservers bedeutet Stateful , dass er sich den Status eines Benutzers für seine letzte Verbindung merken und / oder eine offene Verbindung zu einem Anforderer aufrechterhalten muss. Das wäre in einer Anwendung mit Tausenden von gleichzeitigen Verbindungen sehr teuer und "stressig" ...
Wenn Sie in diesem Fall zustandslos sind, werden Ressourcen offensichtlich effizient genutzt. Das heißt, Sie unterstützen eine Verbindung in einer einzelnen Instanz von Anforderung und Antwort. Kein Aufwand, Verbindungen offen zu halten und / oder sich an etwas aus der letzten Anforderung zu erinnern.
quelle
Wir machen Webapps statusbehaftet, indem wir das zustandslose HTTP-Verhalten mithilfe von Sitzungsobjekten überschreiben. Wenn wir Sitzungsobjekte verwenden, wird der Status übertragen, aber wir verwenden weiterhin nur HTTP.
quelle
Ich hatte den gleichen Zweifel an Stateful V / S Stateless Class Design und recherchierte. Gerade fertiggestellt und meine Ergebnisse wurden in meinem Blog veröffentlicht
quelle