簡単な質問:「Foo.currentState」と「Foo.status」などのフィールドと「enum FooState」と「enum」などのタイプの両方のフィールドに名前を付けるときに、「State」と「Status」をいつ使用するかについての考えを聞きたいFooStatus」。そこに議論されている大会はありますか?1つだけを使用する必要がありますか?ある場合、どちらを選択し、そうでない場合、どのように選択すればよいですか
簡単な質問:「Foo.currentState」と「Foo.status」などのフィールドと「enum FooState」と「enum」などのタイプの両方のフィールドに名前を付けるときに、「State」と「Status」をいつ使用するかについての考えを聞きたいFooStatus」。そこに議論されている大会はありますか?1つだけを使用する必要がありますか?ある場合、どちらを選択し、そうでない場合、どのように選択すればよいですか
回答:
状況による
状態は通常、エンティティの全体的な状態を指します-特定の時点(通常は現在)でのすべての値と関係
ステータスは、たとえば、プロセスまたはワークフローで何かが発生している時点です。汚れている(したがって保存が必要)か、完了しているか、入力が保留中であるかなどです。
それがあなたの決断に役立つことを願っています。
IMO:
ステータス==お元気ですか?[良し悪し]
状態==何してるの?【休憩・働き】
State
、状態マシン(またはワークフロー)の状態ノードのグラフ内の「示されたノード」を反映するべきであると言って、それを公理に一般化することができます。 -ing ")Status
は、オブジェクトの単純なプロパティである単純な形容詞ですが、トリガーによって、または状態を変更(または保持)する決定の観測値として使用される場合があります。私はおそらくそれを過剰に考えています。私は...それを行う
通常、私はオブジェクトまたはシステム全体の現在の状態を意味するために状態を使用します。ステータスを使用して、いくつかのアクションの結果を表します。たとえば、オブジェクトの状態を保存/未保存、有効/無効にすることができます。メソッドのステータス(結果)は成功/失敗/エラーです。このジャイブは、「状況または状況に関する状態」としてのステータスの定義とかなりうまくいきます。この場合の状況は、アクション/メソッドの適用です。
状態よりも状態を好むもう1つの(完全に実用的な)理由は、複数形が単純であることです。
そして私を信じてください、あなたは遅かれ早かれ、あなたのコードにリストや配列、あるいはあらゆる状態を持ち、変数に名前を付ける必要があります。
「状態」が米国の政治的区分を指す以外に理由がない場合、多くの人々は「状態」を使用してオブジェクトの状態を表していると思います。
方程式に別の視点、つまり「送信者と要求者」を追加できると思います。
送信者の観点から、私は自分の状態を聞いてくれる人なら誰にでも伝えたいと思います。リクエスターの観点から、誰かのステータスを尋ねます。
上記は、不確実性の観点からも解釈できます。
あなたのステータスは何ですか?リラックスした状態です。
これは単なる1つの解釈であり、特定の状況には当てはまらない可能性があります。
簡単な辞書チェックにより、ステータスは状態の同義語であることがわかりますが、他のポジションとの相対的な位置の解釈が追加されています。
したがって、私は、互いに相対的な暗黙の順序または位置がない状態のセットに状態を使用し、それらの状態にステータスを使用します(おそらくオフ-スタンバイ-オン?)。しかし、それは細かい違いです。
私が扱う多くのエンティティ(アカウント、顧客)には、状態(TX、VAなど)とステータス(アクティブ、クローズ済みなど)がある場合があります。
したがって、この用語が誤解を招く可能性があるという点が考えられます。私たちには標準化されたデータベース命名規則があります(私の個人的な選択ではありません)。ここで、状態は名前が付けられST_CD
、状態はになりますACCT_STAT_CD
。
オブジェクト指向環境の列挙型では、厳密な型安全性がある場合、コンパイラーは誰もこれを試みないようにするため、この問題はそれほど重要ではありません。
theCustomer.State = Customer.Status.Active;
あなたが動的な環境にいるなら、私はもっと心配になるでしょう!
ステートマシンまたはその他の状態情報があり、その用語が主流であるドメインを扱っている場合、状態は完全に問題ないと思います。
しばらく前に、現在のプロジェクトについてこの正確な議論がありました。私は本当に好みはありませんが、一貫性は重要な考慮事項です。
私のSharp PW-E550(素晴らしい辞書です。私が追加するかもしれません)の「状態」の最初の(いくつかの)定義は、「特定の時間に誰かまたは何かが存在する特定の状態」です。「ステータス」の最初の定義は、「誰かまたは何かの相対的な社会的、職業的、またはその他の立場」です。「状況」の2番目(および最後)の定義でさえ、この文脈では「状態」よりも劣っています。「政治的または商業的文脈における特定の時点での情勢の位置」。
したがって、私の辞書を使用している人ができる限り簡単にしたい場合(New Oxford American Dictionary、2001を使用しています)、「状態」が最良の選択です。
さらに、ギャングオブフォーの著書に記述されている状態パターンと呼ばれる設計パターンがあり、コンピューティング用語集で用語をしっかりと確立しています。
これらの理由から、「状態」を提案します。
PSそれはあなたがDDMですか?あなたはまだ「状態」と「ステータス」について苦いですか?!!!!!!! 爆笑!
まあ、彼らは同じことを意味します。どちらか一方を優先するという必要はないと思いますが、私はラテン語で古典主義に聞こえるものが好きなので、一般的には「ステータス」を使用します。つまり、私の世界では、スキーマの複数形はスキーマなので、他の方法はほとんどありません。
ソフィスティファンク、私はあなたが州とステータスの両方の引数を取得すると確信しています。最も重要なことは、1つを選択し、1つだけを使用することです。これについてあなたのチームと話し合い、誰もが同意することを確認することをお勧めします。
とはいえ、私の提案は次のとおりです。
オブジェクト指向プログラミング言語を使用している場合、オブジェクトの「状態」はオブジェクト自体によって表されます。SomeObject.stateは誤解を招くimoです。あなたの例で「ステータス」が何を表しているのかはわかりませんが、私の自然な直感は、これをステートよりも優先することです。
まったく同じではありません。停止および開始は状態です。停止と開始はステータスです。
それらを同じにした場合、どのように車両を停止したと表現しますか?または、現在提出されているが、まだ承認プロセスに入っていないか、承認されているが、現在、署名待ちのエラー状態で保留になっているアプリケーションですか?
Starting
は確かにとState
完全に異なると主張することができStopped
ます。それはあなたのシステムの意味論に依存します。たとえば、Windowsサービスを確認します。