命名アンチパターン
クラス名やメソッド名、変数名が正しく命名されていない状態は、単にコードリーディングが難しくなるだけでなく、単一責務の原則を破り、スパゲティ化したコードになりやすい。
命名に関する「やってはいけないこと」をまとめておく。
変数名に使用してはいけない言葉
info・data:userInfo・userDataなど- 何かしらの情報だし、何かしらのデータであることは分かっている。どんな情報・データなのか説明するべき
userDataとはせず単純にuserとするか、currentUser・loginUserなど、対象を絞り込むような言葉を付ける
- 連番 :
user1・user2など1・2という数値には意味がないことが多い。順序を示したいワケでもない。マジックナンバーの一種- そうではなく、何故それらを区別しておきたいのかを考える
- 例えば「編集前のデータ」と「画面で編集したデータ」といった違いがあるのであれば、
originalUserとafterUserだとかいう風に付けた方が分かりやすい - 関連ブログ記事 : 2017-09-13 連番は使い始めた時点で終わり
work:workUserなど- 「ワーク変数」という考え方をそのまま変数名に当てるのは危険。大抵はワーク変数のライフサイクルが長くなり、繰り返し代入する作りになっていて、途中経過が追いづらい
tmp・tempも、何がどのくらい一時的なのか分からないため、同様に NG- データを加工する一連の処理をメソッドに切り出し、変更ごとに別の変数 (定数) として宣言した方が良い
命名の仕方がおかしいモノ
- ケースの不揃い :
Admin_user-IDのように、ケースが混在している書き方は NG- キャメルケースなのかパスカルケースなのかスネークケースなのかケバブケースなのか、どれか一つに統一せよ。命名に際してのルールは増やしてはならない
- CSS クラスで多いのが、親要素は
.PascalCase(パスカルケース) なのに子要素では.kebab-Case(ケバブケース、しかも一部大文字が登場する) といった不揃いな状態。大変分かりにくい - 関連ブログ記事 : 2017-09-15 ケースぐらい揃えろ
- 関連ブログ記事 : 2018-01-12 命名規則に関する定石を知っておく
- 関連ブログ記事 : 2018-01-09 プログラミングで誤用される英語たち