日付のネーミングパターン

日付型カラムのネーミングパターンについて、海外のオープンソースソフトウェアを調べてまとめてみました。

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


Kenji in codic

codic のリードプログラマー / デザイナーです。時間があれば、英語やネーミング、NLPについて研究したりしています。