新卒入社して2年目になるわたしですが、
基本的なことからPHPのことなど、たくさんコードレビューで勉強してきました。
今回はその一部をまとめてみました。
1. インデントをそろえる
インデントとは?
ソースコードの見た目を整えてくれるもの。
ifやforなど波カッコ{}で囲まれるブロック内の各行をtabキーやスペースで字下げすること。
if ($dessert == 'papico') {
for ($i = 0; $i <= 3; $i++) {
echo 'デザートはパピコです'
}
} else {
echo 'デザートはパピコではありません'
}
if ($dessert == 'papico') {
for ($i = 0; $i <= 3; $i++) {
echo 'デザートはパピコです'
}
} else {
echo 'デザートはパピコではありません'
}
インデントしてあったほうが、見やすいのがわかります。
入社してから知った技
逆tabインデント
tabキーでインデントした行を元の位置に戻したい!
そんなとき、いつもdeleteキーで戻していました。
しかしshift + tabキーで戻せるのです!
複数行一括字下げ
インデントしたい行が複数ある!
そんなとき、いつも一行ずつインデントしていました。
しかし、複数行を範囲選択しtabキーをおすと・・・
一括でインデントすることができるのです(逆tabインデントもしかり)
2. phpdocをかく
phpdocとは、クラスや関数などの定義前に記述するブロックコメントのこと
phpdocを書いておくと、
- 後にソースを見返した時理解する時間が短縮される
- ドキュメントを自動生成できるようになる
というメリットがあります!
/**
* @return string
*/
public function sample()
{
$dessert = 'papico';
return $dessert;
}
詳しい書き方についてはこちらがおすすめです
phpDocumentorの書き方 - Qiita
3. 演算子をつかいこなす
演算子にはさまざまありますが、わたしが指摘されたのは
条件演算子(三項演算子) と Null合体演算子 です。
条件演算子(三項演算子)とは?
条件により返す値を切り替えることができる演算のこと。
たとえば、answerが10より小さいときはそのままanswerを、
10以上のときは10と返すプログラムをif文、条件演算子でかくとき、
それぞれ以下のようになります。
if ($answer < 10) {
$result = $answer;
} else {
$result = 10;
}
// [条件] ? [TRUEの場合の返り値] : [FALSEの場合の返り値] ;
$result = ($answer < 10) ? $answer : 10;
if文よりも条件演算子のほうがシンプルにかけます。
わたしはずっと条件演算子はif文の省略形だ、と思っていたのですが違うようです。
つかいわけについてはこの記事でお勉強させていただきました
三項演算子は悪か? - Qiita
Null合体演算子とは?
PHP7から追加された新機能で、「〜がなかったら」という処理を簡単にかくことができます。
たとえば、dessertがなかったら買いにいく、あったらdessertと返す処理を
さきほどの条件演算子、Null合体演算子でかくときそれぞれ以下のようになります。
$result = isset($dessert) ? $dessert : '買いにいく';
// [未定義か判定したい変数] ?? [デフォルト値]
$result = $dessert ?? '買いにいく';
条件演算子よりもシンプルに書けることがわかります。
わたしは定義されていない変数によるエラーを防ぐため、??
を乱用してしまいがちなのですが、
処理コストがかかるためつかいすぎには注意が必要です。
最後に
まだまだ指摘いただいたことはたくさんあるので、
また時間を見つけてまとめていきたいと思います。
アドバイス、ご指摘をいただきたく、はてなブログではなく
はじめてQiitaへ投稿してみました