state and status

プログラミングをしていると、状態管理をすることがよくあります。私がよく迷うのは、state、status の使い分け方です。


私の理解では、state = one of status です。例えば、HTTP レスポンスの最初の一行目*1には status code というものがありますが、これは決して state code ではありません。あえていうなら 200 とか 404 とか 500 とかいうものが state code です。


ですので、以下のように使い分けています。

  • status
    • 状態の型
    • 状態変数名
  • state
    • 状態型が列挙型である場合、そのひとつひとつの定義に用いる
    • getter/setter の関数名 ( ex. getState, setState )


で、実際どうなっているのか少し調べただけでも結構ばらつきがありました。厄介ですね。


というわけで、状態の型として state を使うか status を使うかは微妙です。が、割と意味は通じるのでどっちでもいいよ、という説もあります。

*1:通称 status line