プログラミングの中で一番時間を占有するのは「命名」
と個人的に思うので「命名」について自分なりのルールの覚書です。
場所によってルールがあってそれぞれの方法に従ってやるのが
考える時間を減らす良い方法だと思います。
ここには僕が見直すために僕のルールをまとめたいと思います。
今回は変数について(プロパティ含む)。
変数に命名した理由をメモしていく。
(2019/01/19追記)
変数の寿命の短いと思われる物から順番に。
基本ルールとして寿命の短い物ほど名前も短くする。
スコープがメンバ変数以下の物はキャメルケースでまとめる。
名詞の形にする(?)
〇ループ変数
ループ内カウンタ変数。
主にfor文で初期化・カウントアップやカウントダウンされ利用する。
他の変数に意味があるので、
「意味がないほうがわかりやすい」と思う。
単一小文字で構成。
i,j,k x,y,z
基本は前者を用いる。
後者は処理内容が座標などと関係がある時などに。
〇ローカル変数(引数)
メソッド内で一生を終える変数。
前後の処理や変数が利用される処理を見たり、メソッド名と併せて見ると
簡潔な「具体性が出るような程よく曖昧な言葉」
1単語か、より具体的に2単語で構成。
また、用途が限定的である場合や寿命が短い場合、
型の頭文字を利用して生成した単語で構成。
index,count,length,name; itemIndex,playerCount,letterLength,fileName; FileStream fs;
簡単な処理であれば前者。
処理内容によって曖昧すぎる場合後者。
〇メンバ変数
クラスのインスタンス内で共有参照される変数。
クラス名と変数の名前から、「具体的な変数の用途がわかる」ようにする。
1~5単語程度で構成。
itemID,playerState; isStartedMotion;
やっぱり簡潔であることが重要だと思う。
それにはクラス設計自体も簡潔である必要があるのだけれど。
余談だけれど、identificationの略であるIDを変数に使うとき、
略称であるのでIDとして命名に用いるので「ID」と表記するのが良いか、
identificationの略称として「Id」と表記するのが良いか、なんて考えてしまいます。(だから命名に時間を取られるのだろうけど)
僕は「ID」が誤解なくていいかなと思いよく使うのですが、
良くコードで見るのは「Id」であったりします。
ここで論争をする気はありませんが、
上述の理由以外に何か意味があるのかな?