日付のネーミングパターン
日付型カラムのネーミングパターンについて、海外のオープンソースソフトウェアを調べてまとめてみました。
1. creation_date
名詞_date で複合名詞を作るパターンです。時制を持たないので完了日や未来日にも使えるので、汎用的かなと思います。英語的にもめちゃくちゃな意味にはならないです(だって複合名詞だもん)。デメリットは、英語の名詞形は (-tion とか -ing)は長い傾向があるという事でしょうか。
e.g.) creation_date start_date order_date
2. date_created
date_過去分詞 で、〜した日付という意味で過去日付に使います。いわゆる分詞の後置で、海外ではよく見ます。型情報である date が前に付くので、他のカラムとの並びが悪くなります。
// 並びが悪い date date_created; bool created;
未来日について
個人的には、記事公開日 (published_on) のような未来日を設定するカラムに過去分詞を使うと、公開日が来るまで変な感じになるので、未来日を設定する場合は、publication_dateのように複合名詞を使っています。まぁ割り切ってしまえばいいのですけどね(笑)
// 実際は2200年に公開されるのに、まるで既に公開された感じになる post = new Post(); post.created_on = "2200-01-01"; post.create();
3. created_date
過去分詞_date であえて、型情報 (_date) を後ろにもってくるパターンです(過去日を設定)。英語の意味的にはおかしいのですが、ネーミングパターンとしてはアリかなと思います(英語的には、date_createdが正しい)。他のカラムと並べた時にきれいに見えます。
// キレイに並ぶ date created_date int created_user_id
4. created_at (on)
過去分詞_at のパターンは、RoRで有名ですね。一般的には、タイムスタンプ(何かが起きた日時を格納する)として使います。意味的には下みたいな感じです。
(The user) created at 2015-12-11 10:00:00
予定日を入れるとその日付が来るまで、意味がおかしくなるので、予定日を格納する場合は、このネーミングパターンを使うか少し悩みます。一般的には、atが日時でonが日付とするネーミング規約が主流ですが、フレームワークによってはそうでないものもあります。
5. created
過去分詞 で日付とするパターンです。少し乱暴なネーミングのような気もしますが、割と見かけるパターンです。文脈に強く依存して意味を成すので、同じエンティティのBool値のプロパティーには、is_を付けるなどしないと違いがわからなくなります。
date published bool is_published