PHPのプログラミングメモ第7回です。
コード記載時の注意点をメモしていきます。
【関連記事】
- 【PHP第1回】プログラミングメモ/プログラミングメモのコツ/環境構築
- 【PHP第2回】変数・定数・データ型・演算子
- 【PHP第3回】条件分岐・ループ処理
- 【PHP第4回】関数
- 【PHP第5回】配列
- 【PHP第6回】いろいろな関数(文字列を検索・文字列をソート)
- 【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が優れていると言われる点の一つ
【参考文献】
リーダブルコード