LoginSignup
58
45

More than 5 years have passed since last update.

【PHP】新卒入社して1年、コードレビューで指摘された3つのこと

Last updated at Posted at 2018-03-21

新卒入社して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;
}

詳しい書き方についてはこちらがおすすめです:bow:
phpDocumentorの書き方 - Qiita

3. 演算子をつかいこなす

演算子にはさまざまありますが、わたしが指摘されたのは
条件演算子(三項演算子) と Null合体演算子 です。

条件演算子(三項演算子)とは?

条件により返す値を切り替えることができる演算のこと。

たとえば、answerが10より小さいときはそのままanswerを、
10以上のときは10と返すプログラムをif文、条件演算子でかくとき、
それぞれ以下のようになります。

if文
if ($answer < 10) {
    $result = $answer;
} else {
    $result = 10;
}
条件演算子
// [条件] ? [TRUEの場合の返り値] : [FALSEの場合の返り値] ;
$result = ($answer < 10) ? $answer : 10;

if文よりも条件演算子のほうがシンプルにかけます。
わたしはずっと条件演算子はif文の省略形だ、と思っていたのですが違うようです。
つかいわけについてはこの記事でお勉強させていただきました:bow:
三項演算子は悪か? - Qiita

Null合体演算子とは?

PHP7から追加された新機能で、「〜がなかったら」という処理を簡単にかくことができます。
たとえば、dessertがなかったら買いにいく、あったらdessertと返す処理を
さきほどの条件演算子、Null合体演算子でかくときそれぞれ以下のようになります。

条件演算子
$result = isset($dessert) ? $dessert : '買いにいく';
Null合体演算子
// [未定義か判定したい変数] ?? [デフォルト値]
$result = $dessert ?? '買いにいく';

条件演算子よりもシンプルに書けることがわかります。
わたしは定義されていない変数によるエラーを防ぐため、??を乱用してしまいがちなのですが、
処理コストがかかるためつかいすぎには注意が必要です。

最後に

まだまだ指摘いただいたことはたくさんあるので、
また時間を見つけてまとめていきたいと思います。

アドバイス、ご指摘をいただきたく、はてなブログではなく
はじめてQiitaへ投稿してみました:pray:

58
45
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
58
45