命名規則:「状態」と「ステータス」[終了]


175

簡単な質問:「Foo.currentState」と「Foo.status」などのフィールドと「enum FooState」と「enum」などのタイプの両方のフィールドに名前を付けるときに、「State」と「Status」をいつ使用するかについての考えを聞きたいFooStatus」。そこに議論されている大会はありますか?1つだけを使用する必要がありますか?ある場合、どちらを選択し、そうでない場合、どのように選択すればよいですか


14
へえ。先日、私は "state"という名前のメンバーと "status"という名前のメンバーを持つ構造体に出会いましたが、それらは別物でした。私はその言葉が何を意味するのか、そしてそれを変更するかどうかについて考え始めましたが、コードは古くて無造作で機能していたので、眠っている犬を嘘をつきました。?ああ。これはおそらく、「コメント」ではなく「答え、えっコメント、答え、状態、状況...何でもされている必要があります。
smcameron

9
そしてもちろんこれは閉じられています。こんにちは。
jn1kk 2013年

2
@jsnは閉鎖されているだけでなく(最近では何が行われていないのでしょうか)、それでもまだ私がここで寄稿した最も人気のあるものです:)
Sophistifunk

8
これは正当なプログラミングの質問です。 martinfowler.com/bliki/TwoHardThings.html

2
ステータスは、「正常」、「機能低下」、「使用不可」などの単純なラベルです。たとえば、CPU使用率と負荷平均、メモリ使用率、JVMメトリック、ディスク使用量など

回答:


107

状況による

状態は通常、エンティティの全体的な状態を指します-特定の時点(通常は現在)でのすべての値と関係

ステータスは、たとえば、プロセスまたはワークフローで何かが発生している時点です。汚れている(したがって保存が必要)か、完了しているか、入力が保留中であるかなどです。

それがあなたの決断に役立つことを願っています。


211

IMO:

ステータス==お元気ですか?[良し悪し]

状態==何してるの?【休憩・働き】


17
2009年はどこにいましたか?この答えは、技術的な専門用語(CPU状態、スレッド状態、状態マシン、戻りステータス、RAIDボリュームのステータスなど)、およびその他すべて(アプリケーションステータス、アカウントステータスなど)で最も意味があります。一貫性がないと私が考えることができる唯一のことは、「状況」または「状況」に似ている「物事の状態」のようなものです(進行中の事柄ではなく、進行中の事柄の良い/悪い考え)自分で行く)。
Peter

4
状態は、単に「休憩/作業」よりも多くの情報を保持していることを意味しますが、実行している作業(または休憩)に関するすべての詳細を含みます。
BrainSlugs83 2013年

3
「兄弟の裏庭にツリーハウスを建設しています」は、@ BrainSlugs83のように、州のより詳細な例です。この例では、私のステータスは、疲れている/汗をかいている/活気づいている/幸せです。
2014年

4
私はこの例が大好きです。清潔で簡潔。私の実際の使用法ではState、状態マシン(またはワークフロー)の状態ノードのグラフ内の「示されたノード」を反映するべきであると言って、それを公理に一般化することができます。 -ing ")Statusは、オブジェクトの単純なプロパティである単純な形容詞ですが、トリガーによって、または状態を変更(または保持)する決定の観測値として使用される場合があります。私はおそらくそれを過剰に考えています。私は...それを行う
MSFT -アラン・マクビー

6
私は同意します:ステータスはSTATEの変更の結果または進行状況です。
Neil、

16

通常、私はオブジェクトまたはシステム全体の現在の状態を意味するために状態を使用します。ステータスを使用して、いくつかのアクションの結果を表します。たとえば、オブジェクトの状態を保存/未保存、有効/無効にすることができます。メソッドのステータス(結果)は成功/失敗/エラーです。このジャイブは、「状況または状況に関する状態」としてのステータスの定義とかなりうまくいきます。この場合の状況は、アクション/メソッドの適用です。


8

状態よりも状態を好むもう1つの(完全に実用的な)理由は、複数形が単純であることです。

  • 状態->状態
  • ステータス->ステータス

そして私を信じてください、あなたは遅かれ早かれ、あなたのコードにリストや配列、あるいはあらゆる状態を持ち、変数に名前を付ける必要があります。


3
ただ不思議に思っています、ステータスの複数形はスタティではありませんか?
BiAiB

ウィクショナリーはステータスを言います:en.wiktionary.org/wiki/status#Noun。ただし、他の言語では複数形が異なります。
robinst

9
ラテン語の複数形は「statūs」であり、長いuであり、統計ではありません。
–PaŭloEbermann 2013

6

「状態」が米国の政治的区分を指す以外に理由がない場合、多くの人々は「状態」を使用してオブジェクトの状態を表していると思います。


11
それが私がこれまでに使用した理由でもないし、私がすべてで作業したり、そこからテキストを読んだりした人でもない...
Luke Schafer

4
だから何?それは正当な理由です。それは命名規則です。
デイブマークル

4
うん。オーストラリアでも、1901年に連邦で統一された以前の個々の植民地を表すのに「州」という用語を使用します。したがって、.stateはアドレスを持つデータ構造でよく使用されるため、.statusのみを使用する傾向があります。
マシュー・シンケル09/07/22

したがって、address.state = Tasmania; 理にかなっていますが、device.stateは地理に関係するとは想定されていません。
1

3

方程式に別の視点、つまり「送信者と要求者」を追加できると思います。

送信者の観点から、私は自分の状態を聞いてくれる人なら誰にでも伝えたいと思います。リクエスターの観点から、誰かのステータスを尋ねます。

上記は、不確実性の観点からも解釈できます。

  • 定義済み=状態
  • 未定義=ステータス

あなたのステータスは何ですか?リラックスした状態です。

これは単なる1つの解釈であり、特定の状況には当てはまらない可能性があります。


1

簡単な辞書チェックにより、ステータスは状態の同義語であることがわかりますが、他のポジションとの相対的な位置の解釈が追加されています。

したがって、私は、互いに相対的な暗黙の順序または位置がない状態のセットに状態を使用し、それらの状態にステータスを使用します(おそらくオフ-スタンバイ-オン?)。しかし、それは細かい違いです。


1

私が扱う多くのエンティティ(アカウント、顧客)には、状態(TX、VAなど)とステータス(アクティブ、クローズ済みなど)がある場合があります。

したがって、この用語が誤解を招く可能性があるという点が考えられます。私たちには標準化されたデータベース命名規則があります(私の個人的な選択ではありません)。ここで、状態は名前が付けられST_CD、状態はになりますACCT_STAT_CD

オブジェクト指向環境の列挙型では、厳密な型安全性がある場合、コンパイラーは誰もこれを試みないようにするため、この問題はそれほど重要ではありません。

theCustomer.State = Customer.Status.Active;

あなたが動的な環境にいるなら、私はもっと心配になるでしょう!

ステートマシンまたはその他の状態情報があり、その用語が主流であるドメインを扱っている場合、状態は完全に問題ないと思います。


アドレスは、顧客自体ではなく、顧客のアドレスに属しています。例:theCustomer.MailingAddress.State = Iowa;
1

@spembleおそらく、そうでないかもしれません。また、住所を持たない人に添付された場合、出生状態または居住状態になる場合があります。もちろん、住所、ライセンス、許可証など、他の多くのエンティティに添付される場合もあります。いずれにせよ、これは、State machine / flag / statusの実装固有のStateのような一般的な問題ドメイン用語の使用に曖昧性があるかどうかという問題に関連しています。そして、状態またはステータスに異なる意味があるかどうか。
Cade Roux

0

しばらく前に、現在のプロジェクトについてこの正確な議論がありました。私は本当に好みはありませんが、一貫性は重要な考慮事項です。

私のSharp PW-E550(素晴らしい辞書です。私が追加するかもしれません)の「状態」の最初の(いくつかの)定義は、「特定の時間に誰かまたは何かが存在する特定の状態」です。「ステータス」の最初の定義は、「誰かまたは何かの相対的な社会的、職業的、またはその他の立場」です。「状況」の2番目(および最後)の定義でさえ、この文脈では「状態」よりも劣っています。「政治的または商業的文脈における特定の時点での情勢の位置」。

したがって、私の辞書を使用している人ができる限り簡単にしたい場合(New Oxford American Dictionary、2001を使用しています)、「状態」が最良の選択です。

さらに、ギャングオブフォーの著書に記述されている状態パターンと呼ばれる設計パターンがあり、コンピューティング用語集で用語をしっかりと確立しています。

これらの理由から、「状態」を提案します。

PSそれはあなたがDDMですか?あなたはまだ「状態」と「ステータス」について苦いですか?!!!!!!! 爆笑!


-1

まあ、彼らは同じことを意味します。どちらか一方を優先するという必要はないと思いますが、私はラテン語で古典主義に聞こえるものが好きなので、一般的には「ステータス」を使用します。つまり、私の世界では、スキーマの複数形はスキーマなので、他の方法はほとんどありません。


同じことではありません。
BrainSlugs83 2013年

この質問のコンテキストはソフトウェアです。そのため、質問は有効です。コンピュータシステムは、ほとんどの場合、システムのさまざまな部分の状態/ステータスを特定して報告する必要があり、ソフトウェアのデバッグや改善を行う人にとって、わかりやすいように名前を付けることが非常に重要になります。
spemble

-1

ソフィスティファンク、私はあなたが州とステータスの両方の引数を取得すると確信しています。最も重要なことは、1つを選択し、1つだけを使用することです。これについてあなたのチームと話し合い、誰もが同意することを確認することをお勧めします。

とはいえ、私の提案は次のとおりです。

オブジェクト指向プログラミング言語を使用している場合、オブジェクトの「状態」はオブジェクト自体によって表されます。SomeObject.stateは誤解を招くimoです。あなたの例で「ステータス」が何を表しているのかはわかりませんが、私の自然な直感は、これをステートよりも優先することです。


1
1つを選んで1つだけを使用するのはばかげています。2つは異なる意味と意味を持っています。たとえば、「GameState」と「GameStatus」を比較してください。この2つは意味が大きく異なり、互換性はありません。
BrainSlugs83 2013年

-2

まったく同じではありません。停止および開始は状態です。停止と開始はステータスです。

それらを同じにした場合、どのように車両を停止したと表現しますか?または、現在提出されているが、まだ承認プロセスに入っていないか、承認されているが、現在、署名待ちのエラー状態で保留になっているアプリケーションですか?


1
OPはどちらか一方を使用することを求めていました。両方ではありません。それStartingは確かにとState完全に異なると主張することができStoppedます。それはあなたのシステムの意味論に依存します。たとえば、Windowsサービスを確認します。
Andrew Barber、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.