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論争はここではおいておいてね。)

そんな感じ

です。