started_at ってカラム

問題

最近、あるテーブルに started_at って名前のカラムをつけてしまったんだけど、あまりよくないっぽい。(あまり深く考えずに、created_at とか同様に過去分詞_atでいいだろと思って命名した。)

解説

startend は自動詞にも他動詞にもなれるんだけども、例えば Campaigns というテーブルに対して、start した datetime を格納するためのカラムを追加するときは、Campaign が主語になり、「キャンペーンが始まる」という意味の自動詞にするのが自然とのこと。こうすると、自然言語では「The Campaign starts at 9 PM today.」とかなるので、starts_at命名するのが自然っぽい。

現場

インターネット で検索してみたら、あるあるなのかなぁ 〜

他にも

認証の日時を記録するようなとき、

  • Authentication : 認証
    • created_at : 発行された日時
    • updated_at : 変更された日時
    • ○○_at : 失効する日時

こういうときは、expires_at が良いっぽい。

  • expires が created_at の後に起きるのに過去形じゃない
  • created_at, updated_at と合わせて expired_at にしたほうがよい

という意見もあるみたいだけども、クラス名と動詞との主従関係で考えると、expire は自動詞であり、Authentication は期限するものであって期限切れされるものではない。という理由らしい。時間的制約では考えない方がよいとのこと。

この指摘

は、この本に書いてあったことです。

問題解決力とコーディング力を鍛える 英語のいろは

問題解決力とコーディング力を鍛える 英語のいろは

他にも、網羅的に開発時にぶつかる英語で困ることをいろいろ学べまっす。サンプルコードも Ruby なのがわかりやすいです。おすすめでっす。