簡単な質問: "Foo.currentState" と "Foo.status" などの両方のフィールドと、"enum FooState" と "enum Fooステータス」。そこで議論されているコンベンションはありますか?1つだけ使用する必要がありますか?もしそうならどれを、そうでなければどのように選ぶべきでしょうか?
12 に答える
IMO:
状態 == お元気ですか? [良し悪し]
状態 == 何をしているの?【休む・働く】
文脈によるよ
状態は通常、エンティティの状態全体を指します。特定の時点 (通常は現在) におけるすべての値と関係です。
ステータスとは、プロセスまたはワークフローのどこに何かがあるかというより、時点のことです。つまり、ダーティ (したがって保存が必要) か、完了しているか、入力が保留中であるかなどです。
それがあなたの決定に役立つことを願っています。
通常、オブジェクトまたはシステム全体の現在の状態を意味するために State を使用します。ステータスを使用して、何らかのアクションの結果を表します。たとえば、オブジェクトの状態は、保存されている/保存されていない、有効/無効である可能性があります。メソッドのステータス (結果) は、成功/失敗/エラーです。これは、「状況に関する状態または条件」としてのステータスの定義と非常によく一致していると思います。この場合の状況は、アクション/メソッドの適用です。
状態よりも状態を好むもう 1 つの (完全に実用的な) 理由は、複数形が単純だからです。
- 州 -> 州
- ステータス -> ステータス
遅かれ早かれ、コードにリストや配列などの状態が含まれ、変数に名前を付ける必要があります。
「州」が米国の政治的区分を指す場合、多くの人がオブジェクトの状態を表すために「ステータス」を使用すると思います。
方程式に別の視点、つまり「送信者-要求者」を追加できると思います。
送信者の観点から言えば、私は自分の状態を聞いてくれる人なら誰にでも伝えたいと思います。リクエスタの観点からは、誰かのステータスを求めています。
上記は、不確実性の観点から解釈することもできます。
- 定義済み = 状態
- 未定義 = ステータス
あなたのステータスは?リラックスした状態です。
これは 1 つの解釈にすぎないと確信しており、特定の状況には当てはまらない場合があります。
簡単な辞書チェックにより、status は state の同義語であることがわかりますが、others の相対的な位置に関する追加の解釈があります。
したがって、暗黙的な順序付けや相対的な位置を持たない状態のセットにはstateを使用し、それらの状態にはstatusを使用します (おそらく off-standby-on ?)。しかし、それは素晴らしい違いです。
しばらく前に、現在のプロジェクトについてまさにこの議論がありました。特に好みはありませんが、一貫性は重要な考慮事項です。
私の Sharp PW-E550 の「状態」の最初の (いくつかありますが) 定義 (素晴らしい辞書だと付け加えるかもしれません) は、「誰かまたは何かが特定の時間に置かれている特定の状態」です。「ステータス」の最初の定義は、「誰かまたは何かの相対的な社会的、職業的、またはその他の地位」です。「地位」の 2 番目 (そして最後) の定義でさえ、この文脈では「国家」よりも劣っています: 「特定の時期における、特に政治的または商業的文脈における状況」。
したがって、誰かが私の辞書 (New Oxford American Dictionary, 2001 を使用) を使用できるようにしたい場合は、「状態」が最適です。
さらに、Gang of Four の著書で説明されているステート パターンと呼ばれる設計パターンがあり、コンピューティング用語集でこの用語をしっかりと確立しています。
これらの理由から、私は「状態」を提案します。
PS あなたは DDM ですか?あなたはまだ「状態」と「ステータス」について苦いですか?!!!!!!!! 爆笑!
まったく同じではありません。停止と開始は状態です。停止と開始はステータスです。
それらを同じものにすると、車両が停止しているが現在始動しているとどのように説明しますか. または、現在提出されているが承認プロセスに入っていない、または承認されているが署名待ちのエラー状態で現在保留中の申請書ですか?
まあ、それらは同じことを意味します。どちらか一方が優れていると公言する必要はないと思いますが、一般的には「ステータス」を使用します。つまり、私の世界では、スキーマの複数形はスキーマなので、それ以外の方法はほとんどありません。
Sophistifunk さん、State と Status の両方の引数が得られるはずです。最も重要なことは、1 つを選択し、1 つだけを使用することです。これについてチームと話し合って、全員が同意する内容を確認することをお勧めします。
とは言え、私の提案は以下の通りです。
オブジェクト指向プログラミング言語を使用していると仮定すると、オブジェクトの「状態」はオブジェクト自体によって表されます。SomeObject.state は誤解を招くものです。あなたの例で「ステータス」が何を表しているのかわかりませんが、私の自然な直感は、これを述べることを好むことです。