started_at ってカラム
問題
最近、あるテーブルに started_at
って名前のカラムをつけてしまったんだけど、あまりよくないっぽい。(あまり深く考えずに、created_at とか同様に過去分詞_atでいいだろと思って命名した。)
解説
start
や end
は自動詞にも他動詞にもなれるんだけども、例えば Campaigns というテーブルに対して、start した datetime を格納するためのカラムを追加するときは、Campaign が主語になり、「キャンペーンが始まる」という意味の自動詞にするのが自然とのこと。こうすると、自然言語では「The Campaign starts at 9 PM today.」とかなるので、starts_at
と命名するのが自然っぽい。
現場
インターネット で検索してみたら、あるあるなのかなぁ 〜
日付のカラム名、started_at にするか start_at にするかいつも悩むせいでプロジェクトごとにバラバラ。
— Takafumi ONAKA (@onk) 2012年4月16日
他にも
認証の日時を記録するようなとき、
- Authentication : 認証
- created_at : 発行された日時
- updated_at : 変更された日時
- ○○_at : 失効する日時
こういうときは、expires_at
が良いっぽい。
- expires が created_at の後に起きるのに過去形じゃない
- created_at, updated_at と合わせて expired_at にしたほうがよい
という意見もあるみたいだけども、クラス名と動詞との主従関係で考えると、expire は自動詞であり、Authentication は期限するものであって期限切れされるものではない。という理由らしい。時間的制約では考えない方がよいとのこと。
この指摘
は、この本に書いてあったことです。
- 作者: 鈴木達矢
- 出版社/メーカー: 技術評論社
- 発売日: 2018/11/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
他にも、網羅的に開発時にぶつかる英語で困ることをいろいろ学べまっす。サンプルコードも Ruby なのがわかりやすいです。おすすめでっす。