【PHP第7回】コード記載時の注意点

【PHP第7回】コード記載時の注意点

PHPのプログラミングメモ第7回です。

コード記載時の注意点をメモしていきます。

【関連記事】

コード記載時の注意点

  • 仕様を満たしているか
  • 命名規則に即しているか
  • 変数名・関数名は適切か
  • 変数名、メソッド名では単数、複数を明確に
  • インデントは適切か
  • 冗長な記載はないか
  • 保守性を考慮しているか
  • コメントを書きすぎない

仕様を満たしているか

コードが仕様を満たしているか確認します。

命名規則に即しているか

変数名、関数名が命名規則を満たしているか確認します。

変数名・関数名は適切か

  • 変数名やメソッド名に略語は使わない
  • 短くするメリットは特にないため
  • 例 略語を使う場合もある
    average_ => avg
    image_ => img
  • 業務に入ったら、1番できる人のコードに合わせればOK
  • 原則的にはメソッド名と変数名は長くなっても構わないので、変な略語をつけない方がベター

補足

  • 繰り返し文のサンプルでよく使われるk v などはkeyvalueの略らしいが、略さなくてOK
  • ちゃんとした命名ができるならした方が良い

変数名、メソッド名では単数、複数を明確に

変数の内容、戻り値の型などを想像しやすいのがベター

単数例 ・user
・id
・findUser
複数例 ・users
・ids
・searchUserList
・searchUsers

メソッドとは?

  • オブジェクト指向プログラミング(OOP)において、クラス内で定義された関数のこと
  • クラスは、オブジェクトを生成するための設計図のようなもの
  • メソッドはそのクラス内で実行される特定の動作を定義する

インデントは適切か

  • 基本的にインデントはブロック{}単位でおこなう
  • PSR-2に則ったコーディングでは、インデントは4スペース
  • タブの使用はNG

メソッドの戻り値を意識する

  • 基本的に一つのメソッドは一つの型を返す
  • ある条件ではboolean, ある条件ではarrayを返すメソッドは何かおかしい

if文の対称性を意識する


反対のことが入る この条件なら出力する 他はしない
類似の処理が入る この条件なら出力する この条件なら2回出力する

ダメな例
この条件なら食べる 違う条件ならお風呂に入る
このように関連性がない処理を書くのはNG

さらに条件分岐の注意点
圧倒的に通る条件をトップに持ってくる
処理回数が減る → 負荷が減るため

アクセス修飾子は正しく使う

  • publicメソッド  # 全てのクラスから呼び出される可能性があるメソッド
  • pulivateメソッド # 自分のクラスからだけ呼び出されるメソッド
  • 上記を気をつけることで、カプセル化されたコードに近づく

コメントを書きすぎない

  • 経験があるエンジニアは、洗練されたコードと適度なコメントで十分にコードが読める
  • コメントはコードを補足するくらいの位置付けで、伝わりやすいコードを書くことを重視するのがベター

PHP限定

  • メソッドの引数と返り値には型を設定する
  • これはRubyよりPHPが優れていると言われる点の一つ

【参考文献】
リーダブルコード