program – 命名規則「変数」

プログラミングの中で一番時間を占有するのは「命名」
と個人的に思うので「命名」について自分なりのルールの覚書です。

場所によってルールがあってそれぞれの方法に従ってやるのが
考える時間を減らす良い方法だと思います。
ここには僕が見直すために僕のルールをまとめたいと思います。

今回は変数について(プロパティ含む)。
変数に命名した理由をメモしていく。
(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」であったりします。

ここで論争をする気はありませんが、
上述の理由以外に何か意味があるのかな?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です