命名ベストプラクティス
コーディングにおいて、命名、名前を付けるということは非常に重要な意味を持つ。与えられたクラス名やメソッド名、変数名などによって、コード内で抽象化された対象物の役割範囲が決まるので、名前が正しくないと内容が分かりにくくなるだけでなく、単一責務の原則を破り、スパゲティ化したコードになりやすい。
文書を書く時にも同じことがいえて、「タイトル」や「見出し」がその章や文書全体の説明範囲を示すワケだから、「〜〜について」といった見出しばかりの文書になるようであれば、もう少し頭を使って構成を考えた方が良い。
名前に使用する単語は必ず辞書を引き、正しい意味を確認する
register
(登録する) の名詞系のつもりで regist
(「抵抗する」の意味になる)、のような「よくある間違い」は辞書を引いて避ける・
英単語の品詞・単複に注意する
- クラス名や変数名は、単数の名詞が基本
- メソッド名は動詞が基本。引数が目的語になるイメージ
- 関連ブログ記事 : 20186-07-16 文書構造を読み解く習慣がコードの質を高める、と思う … 英語読解における「スラッシュリーディング」の感覚があると、クラス・メソッド・引数の品詞が分かるようになる
同じモノは同じ単語で記述する
あるユーザ情報を表現するのに user
・member
・person
などの類語を混ぜて使わない。
- 関連ブログ記事 : 2017-09-14 同じものを表現するなら同じ単語を使う
命名規則のベストプラクティス、よくある命名方法を知る
- Boolean な変数名 :
is
・can
・has
などを使う- 関連ブログ記事 : 2016-03-08 フラグ項目の物理名は「is」で付けるべき
- 「登録」 : 何でもかんでも
register
ではなく、リソースの生成ならcreate
やnew
といった類語を学ぶinsert
を使ってしまうと SQL に密結合な印象を与えるため、適切に抽象化するならcreate
・add
といった言葉を検討する
- 関連ブログ記事 : 2018-01-12 命名規則に関する定石を知っておく
上手く名前が付けられない場合は、単一責務の原則が守れているか確認する
- 「入力チェックも DB 接続もやっているメソッド」の名前は役割が複数持たされているので、綺麗に命名できない
- 命名で頑張るのではなく、名前を付けやすいよう、先にクラスやメソッドを単一責務で分割する (例 : 「入力チェック作業 →
validate()
」「DB 接続する作業 →update()
」「それらをまとめて登録処理と呼ぶ →register()
)