命名アンチパターン
クラス名やメソッド名、変数名が正しく命名されていない状態は、単にコードリーディングが難しくなるだけでなく、単一責務の原則を破り、スパゲティ化したコードになりやすい。
命名に関する「やってはいけないこと」をまとめておく。
変数名に使用してはいけない言葉
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 プログラミングで誤用される英語たち