Datasという変数名を見るとモヤモヤするという話

Object data;
Object[] datas;

ソースコードをよんでいるときによく出くわすあれ。
何らかのデータの集合体を表す変数の名前に使われがちなdatas

同じ仲間にmediasがいる。
これも何らかのメディアの集合を表す変数名で使われがち

だが気をつけるのだ。
後々ソースコードを見るうるさいプログラマが「これはおかしい!」と言われたりするのだ。

すでに複数形

何が問題か、プログラミングには全く関係ない些末な問題なのだが
dataもmediaもすでにそれが複数形なのだ。

それぞれの単数形はdatum mediumで
datumという単数形は使わず、通常data(複数形)を使うそうだ。
ということが辞書に書いてあるが…

https://tools.ietf.org/html/rfc959

このFTPのRPCを見てみると…dataを単数形で使っとるじゃないか!

ここから分かるところは、アメリカ人は単数だけの名詞として使っているのかもしれない。

mediaの単数形mediumはこれはよく使う単語で
大学受験でもでてくると思う。
媒体とか手段とかいう意味もあるが、中間、ミディアムといえば分かると思うけれど、よく使う言葉なのだが、

https://tools.ietf.org/html/rfc3960
こちらのSIPというセッション確立プロトコルのRFCをよんでみると、
mediaを普通の単数形として使っておる!!

これもアメリカ人などにとっては、コンピュータ用語で使うmediaは単数形の名詞になったんだろうな。

両方とも、単複同形の単語としてsをつけることなく使われるか、単数形のみで使われる単語として使われているか、不可算名詞あつかいなのか、わからないけれどもsのついた複数形は無い。

最もそういう複数形も俗語レベルであるのかもしれない。

じゃあどうするか、どうしようか。

ラテン語由来なのだ

これはラテン語由来の単語で、
O型各変化の -um -iと変化するタイプの名詞で、
単数主格(その名詞を主語にして、単数形の場合)のときにはdatumになるけれども、
単数属格(その名詞を所有格として、そして単数形の場合)のときはdatiとなる。
同じタイプで変化する有名な名詞としては
ピルムという言葉がある。
これは古代ローマで使われた槍だが、wikipediaをみると複数形がaになっている
https://ja.wikipedia.org/wiki/%E3%83%94%E3%83%AB%E3%83%A0

主格複数形(その名詞が複数形で主語に使いたい場合)はdatumになる

もう一つある命名規則でウガーってくる場合

あとはexistも命名規則警察に怒られるパターンだ。

booleanを返すメソッドはisをつけるというパターンで統一してしまって
〇〇が存在する という意味でisExistってやっちゃうタイプ。

ではJavaのFileクラスで見てみよう
Fileはディレクトリを表しているかどうかを調べるメソッドは
isDirectoryというメソッド名になっている。
This File is directory という文章から組み立てられる。

ではFileは存在するか調べるメソッドはどうだ?
isExistにしてしまってはならない。
This file exists.と書くのが正しい文法だ。
existは動詞で、目的語をとらない自動詞なんだ。

だから、existsという名前でいい。

Set型のオブジェクトだと、あるオブジェクトを持っているかどうかを調べる場合は
containsという名前になっている。
This Set object contains the data object.という感じだろうか。
目的語が引数になっている。

ドヤれるソースに

別にメソッド名変数名は動作には関係ないし
意味がわかる統一感さえあれば可読性には影響はしないけれど
やっぱりちゃんとした名前をしているとかっこいい。

ちゃんとしたプロジェクトが作ったライブラリのような感じすらしてしまう。

ちゃんとしたオープンソースのコード読んでいるかもしれないという安心感も感じさせてくれる。

スポンサードリンク

関連コンテンツ