Kurze Frage: Ich würde gerne Ihre Gedanken darüber hören, wann "State" oder "Status" verwendet werden soll, wenn Sie beide Felder wie "Foo.currentState" vs "Foo.status" und Typen wie "enum FooState" vs "enum" benennen FooStatus ". Gibt es da draußen eine Konvention? Sollten wir nur einen verwenden? Wenn ja, welches und wenn nicht, wie sollen wir wählen?
naming-conventions
nomenclature
Sophistifunk
quelle
quelle
Antworten:
Das hängt vom Kontext ab
Der Status bezieht sich im Allgemeinen auf den gesamten Status einer Entität - alle ihre Werte und Beziehungen zu einem bestimmten Zeitpunkt (normalerweise aktuell).
Der Status ist eher ein Zeitpunkt, an dem sich etwas in einem Prozess oder Workflow befindet - ist es schmutzig (erfordert daher das Speichern), ist es vollständig, steht eine Eingabe aus usw.
Ich hoffe das hilft dir bei deiner Entscheidung.
quelle
IMO:
status == wie geht es dir [gut schlecht]
state == was machst du [ruhen / arbeiten]
quelle
State
es den "angegebenen Knoten" in einem Diagramm von Zustandsmaschinen- (oder Workflow-) Zustandsknoten widerspiegeln sollte, wobei die Beschreibung leicht ein verbales Adjektiv sein kann (oft endet mit " -ing "), währendStatus
es sich um eine einfache Eigenschaft des Objekts handelt, ein einfaches Adjektiv, das von einem Trigger oder als beobachteter Wert für eine Entscheidung zur Änderung (oder Beibehaltung) eines Zustands verwendet werden kann. Ich überdenke es wahrscheinlich. Ich mache das ..Normalerweise verwende ich Status, um den aktuellen Zustand eines Objekts oder des gesamten Systems zu bezeichnen. Ich benutze den Status, um das Ergebnis einer Aktion darzustellen. Beispielsweise kann der Status eines Objekts gespeichert / nicht gespeichert, gültig / ungültig sein. Der Status (Ergebnis) einer Methode ist erfolgreich / erfolglos / fehlerhaft. Ich denke, dies stimmt ziemlich gut mit der Definition des Status als " Zustand oder Bedingung in Bezug auf die Umstände " überein , wobei die Umstände in diesem Fall die Anwendung einer Handlung / Methode sind.
quelle
Ein weiterer (völlig pragmatischer) Grund, den Staat dem Status vorzuziehen, ist, dass der Plural einfach ist:
Und glauben Sie mir, Sie werden früher oder später eine Liste oder ein Array oder einen beliebigen Status in Ihrem Code haben und die Variable benennen müssen.
quelle
Ich denke, viele Leute verwenden "Status", um den Zustand eines Objekts darzustellen, wenn sich "State" aus keinem anderen Grund auf eine politische Spaltung der Vereinigten Staaten bezieht.
quelle
Ich denke, Sie könnten der Gleichung eine andere Perspektive hinzufügen, nämlich "Absender-Anforderer".
Aus Sicht des Absenders würde ich meinen Zustand jedem mitteilen, der bereit ist, zuzuhören. Aus Sicht des Antragstellers würde ich nach dem Status einer Person fragen.
Das Obige könnte auch unter dem Gesichtspunkt der Unsicherheit interpretiert werden: - Definiert = Zustand - Undefiniert = Status Wie ist Ihr Status? Ich bin in einem entspannten Zustand.
Ich bin mir ziemlich sicher, dass dies nur eine Interpretation ist, die möglicherweise nicht auf Ihre spezielle Situation zutrifft.
quelle
Eine schnelle Wörterbuchprüfung zeigt, dass Status ein Synonym für Status ist, aber eine zusätzliche Interpretation einer Position relativ zu der anderer hat .
Ich würde also state für eine Reihe von Zuständen verwenden, die keine implizite Reihenfolge oder Position relativ zueinander haben, und status für diejenigen, die dies tun (möglicherweise off-standby-on?). Aber es ist eine feine Unterscheidung.
quelle
Viele der Unternehmen, mit denen ich zu tun habe (Konten, Kunden), haben möglicherweise einen Status (TX, VA usw.) und einen Status (Aktiv, Geschlossen usw.).
Der Punkt, dass der Begriff irreführend ist, ist also möglich. Wir haben eine standardisierte Datenbankbenennungskonvention (nicht meine persönliche Wahl), in der ein Staat benannt wird
ST_CD
und ein Status wäreACCT_STAT_CD
.Bei einer Aufzählung in einem OO-Milieux ist dieses Problem nicht so wichtig, da der Compiler bei strenger Typensicherheit sicherstellt, dass niemand versucht, dies zu tun:
Wenn Sie sich in einer dynamischen Umgebung befinden, wäre ich besorgter!
Wenn Sie es mit einer Domäne zu tun haben, in der Zustandsautomaten oder andere Zustandsinformationen vorherrschen und diese Terminologie vorherrscht, dann würde ich denken, dass Zustand vollkommen in Ordnung ist.
quelle
Wir hatten vor einiger Zeit genau diese Debatte über mein aktuelles Projekt. Ich habe wirklich keine Präferenz, aber Konsistenz ist eine wichtige Überlegung.
Die erste (es gibt mehrere) Definition von "Status" in meinem Sharp PW-E550 (ein fantastisches Wörterbuch, könnte ich hinzufügen) ist "die besondere Bedingung, in der sich jemand oder etwas zu einer bestimmten Zeit befindet". Die erste Definition von "Status" ist "die relative soziale, berufliche oder sonstige Stellung von jemandem oder etwas". Selbst die zweite (und letzte) Definition von "Status" ist in diesem Zusammenhang "Staat" unterlegen: "die Position der Angelegenheiten zu einem bestimmten Zeitpunkt, insbesondere in politischen oder kommerziellen Kontexten".
Wenn wir also möchten, dass es für jemanden, der mein Wörterbuch verwendet (es verwendet das New Oxford American Dictionary, 2001), so einfach wie möglich ist, wäre "state" die beste Wahl.
Darüber hinaus gibt es ein Entwurfsmuster, das im Buch der Viererbande beschrieben ist und als Zustandsmuster bezeichnet wird und den Begriff fest im Computerlexikon verankert.
Aus diesen Gründen schlage ich "Zustand" vor.
PS Bist du DDM? Sind Sie immer noch bitter über "Staat" gegen "Status"? !!!!!!! LMAO!
quelle
Nun, sie bedeuten dasselbe. Ich denke nicht, dass es notwendig ist, eine große Präferenz gegenüber der anderen zu verbreiten, aber ich würde im Allgemeinen mit "Status" gehen, weil ich Dinge mag, die lateinisch und klassisch klingen. Ich meine, in meiner Welt ist der Plural des Schemas Schemata, also gibt es bei mir so gut wie keinen anderen Weg.
quelle
Sophistifunk, ich bin sicher, Sie werden Argumente für Status und Status erhalten. Das Wichtigste ist, dass Sie eine auswählen und nur eine verwenden. Ich würde vorschlagen, dies mit Ihrem Team zu besprechen und zu sehen, worüber sich alle einig sind.
Mein Vorschlag lautet jedoch wie folgt.
Angenommen, Sie verwenden eine objektorientierte Programmiersprache, wird der "Status" eines Objekts durch das Objekt selbst dargestellt. SomeObject.state ist imo irreführend. Ich bin mir nicht sicher, was "Status" in Ihrem Beispiel darstellt, aber meine natürliche Intuition ist es, dies der Angabe vorzuziehen.
quelle
Überhaupt nicht dasselbe. Gestoppt und gestartet sind Zustände. Stoppen und Starten sind Status.
Wenn Sie sie gleich machen, wie beschreiben Sie das Fahrzeug als gestoppt, startet aber gerade? Oder ein Antrag, der derzeit eingereicht wurde, aber noch nicht in das Genehmigungsverfahren eingetreten ist oder genehmigt wird, aber derzeit mit der Fehlerbedingung "Warten auf Unterschrift" zurückgestellt wird?
quelle
Starting
in der TatState
völlig anders istStopped
. Dies hängt von der Semantik Ihres Systems ab . Überprüfen Sie beispielsweise Windows-Dienste.