0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JOJOを例にして見やすいコードを書いていくで part1

Posted at

はじめに

まいど。大阪生まれ大阪育ち、4年目エンジニアの「スイッチくん」っていうもんや
初心者の時はそれはそれは見るも無惨なコードを書いてきたワイやが、
泣きそうになるほどの先輩の厳しいレビューや素晴らしい書籍のおかげでましなコードを書けるようになってきた
そこで、ワイが普段気をつけていることを書いていくで
プログラミングうまい人からすれば「そんな当たり前なこと何いっとんねんな」と思うかもしれないが、
知らない人はこれを知っておくことで見やすいコード書けるようになるから是非みたって~

今日は、「ガード節」について説明していくで

ガード節

ガード節とは、条件分岐の後、早めにreturnなどで処理を終わらせることや
ん?全然意味わからない??ほなワイが今ハマっているJOJOを例えにして詳しく説明していくで
例で定義している関数は、名字と第何部かの変数を受け取り、その部に応じた主人公を返すものや
名字がジョースターじゃない時点で主人公ではないのが確定するので、空文字を返してるで

ガード節使用例.js
fucntion getJOJOMainCharacter(firstName, part) {
    if (firstName !== 'ジョースター') {
        return '';
    }
    
    if (part === 'one') {
        return 'ジョナサン';
    }

    if (part === 'two') {
        return 'ジョセフ';
    }

    if (part === 'three') {
        return '承太郎';
    }

    return '';
}

見ての通り、各条件内に入った場合に該当する値をreturnで返してるやろ
これをするメリットは主に以下や
・該当の条件で処理が終わるので、それ以外の条件内は見なくすむ。結果、見やすいコードになる
・ネストが短くなる

逆にガード節使わんかったらこんな感じや

非ガード節使用例
fucntion getJOJOMainCharacter(firstName, part) {
    const mainCharacterName = '';
    
    if (firstName === 'ジョースター') {
        if (part === 'one') {
            mainCharacterName = 'ジョナサン';
        }
    
        if (part === 'two') {
            mainCharacterName = 'ジョセフ';
        }
    
        if (part === 'three') {
            mainCharacterName = '承太郎';
        }
    }
    
    return mainCharacterName;
}

見ての通り、最初に主人公の変数を定義し、各部に該当する主人公を変数に格納して最後にreturnしてるやろ
最初の「ガード節使用例」と比べてどうや??ネストは深くなっとるし、該当条件の処理に入った後でも違う条件の処理みないとあかんやろ??
こういうあかんところがなくなるから「ガード節」がいいんや
だから使ってない人がいたら積極的に使っていくんやで
ワイ??先輩に「ガード節使わんやつはカス」って言われてから使うよう意識しとるで~(泣)

0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?