JavaScriptおれおれAdvent Calendar 2014 – 16日目
間が空いてしまったけど、ぼちぼち落ち着いてきたので再開します。
割と全体的な命名のお話。なおプロパティの命名も同様。
※例がうまく思い付かなかったので、ちょっとアレかも。思い付いたら後で変更するかもです。
基本は名詞
user
とかname
とかage
とか、そういう値やオブジェクトを格納するものは名詞にします。
中身がオブジェクトなのか、文字列なのか数値なのか、は空気読む感じ。
動詞と同形なら、名詞を優先
ややこしいのが、名詞であり動詞でもある場合。その場合は名詞を優先します。で、関数の方は別の動詞+その名詞で名付ける。
例えばーそうだな、”sample”とか。オブジェクトなり純粋な値なりはsample
、それを抽出する関数はmakeSample()
とか。
動詞は関数
実行可能なものは動きそうな名前にしておきます。
これは別記事参照。
“f_”は関数オブジェクト
上記リンク先参照。
形容詞は二値
booleanの値は形容詞にします。他に副詞、形容動詞、過去分詞も。
例えばuser.active
がtrue
なら、そのユーザーはアクティブだという事に。user.logginIn
ならログイン中のユーザー、user.frozen
なら凍結ユーザー。
オブジェクトを指す場合も
英語だと”the”と形容詞で名詞扱いするじゃないすか。アレですアレ。
よく使うのが”prev”, “next”で、これどっちも形容詞なんだけど、よく一覧で前後の項目を格納してます。
表現しにくい場合は接頭辞”b”
booleanの”b”。要はパッと見でわかれば良いので、うまく簡単な表現を思い付けない場合、あきらめてこれで済ませます。
例えば、直近六ヶ月にログインしたユーザーはuser.loggedInInThese6Months
じゃなくてuser.b6Months
とか。あーなんか例えば良くなさげ……。
複数形は配列
user
はユーザー情報を格納したオブジェクトで、users
ならそのオブジェクトが格納されている配列。
単複同形なら接尾辞”List”
単複同形じゃなくてもこの接尾辞使う事もあるけど。
“at”は時刻
startedAt
とかmodifiedAt
とか。ただし、中身はDateオブジェクトよりDate.now()で得られる数値が入っている場合が多い。
Ruby on Railsの影響。
“$”はjQueryオブジェクト、”el”は要素
name
, $name
, elName
みたいな使い分け。
これも別記事参照。
“d”はDeferred、”p”はPromise
jQuery.Deferred()
の戻り値と、d.promise()
の戻り値。
一文字d
をそのまま変数名として採用する場面も多いんだけど、複数のDeferredを一度に扱う場合は接頭辞として使います。
例としては、ユーザー一覧と告知一覧を取得するとき、dUsers
とdInformations
にする。的な。そういう。
(Promise論争はここではおいておいてね。)
そんな感じ
です。