【Swift】よくあるファクタリングまとめ~チェックリストのように使ってください~

リファクタリングするたびにこの記事に追記していきます。

適切な名前をつける

何をしたいかわからない名前

func changeIntValue01() {
}

連番命名

var value01
var value02
var value03
var value04

 

名前は省略はしない

before

以下のロジックは何を行っているのでしょうか?ぱっと見ではわかりません。

let n1 = num1 / 100
let n2 = num2
var r = n2 / (n1 * n2)
r = floor(r * 10) / 10
return r.description

after

以下のようにわかりやすい名前をつけることで、ぱっと見でbmiを計算していることがわかります。

let height = heightTextValue / 100
let weight = weightTextValue
var bmi = weight / (height * weight)
bmi = floor(bmi * 10) / 10
return bmi.description

簡単なリファクタリング

isEmptyを使う

before

if array.count == 0 {
    return
}

after

if array.isEmpty {
    return
}

深いネスト

ネストはなるべく深くしない。早期リターンする

before

if gender == "男性" {
    if age >= 20 {
        if isMarried {
            
        }
    }
}

after

if gender != "男性" { return }
if age < 20 { return }
if isMarried {
    
}

マジックナンバー

before

以下の例だと、60というのがなんなのかがわかりません。このようにいきなり数字をコードに書き込むのをマジックナンバーと言います。

if score >= 60 {
    // 処理
}

after

以下のように、一旦定数や変数に代入してから使うと、60が合格のスコアだとわかります。

let passScore = 60
if score >= passScore {
    
}