開発をしていて、コードの書き方について思うこと、感じたことを書いています。
思うこと
同じ動作でもコードの書き方が複数あるとき、コードの書き手は「読み手を意識して、意図に合わせて、書き方を決める」といいかもと思います
if else と if のどちらでも書ける時、if elseの方がいいかも
ifの中でreturnするコードでは、if elseを使った方が、意図が伝わりやすいと思います。
func immigration() {
if nationality == "japan" {
// 日本人用の処理
// ...
return
}
// 日本人以外の処理
// ....
return
}
if elseを使ったとき
func immigration() {
if nationality == "japan" {
// 日本人用の処理
// ...
} else {
// 日本人以外の処理
// ....
}
}
そう思う理由
コードを読む時、最初に、全体の流れを把握する人が多いと思います。ifの中でreturnするコードでは、 全体の流れを把握するときに、ifの中のreturnに気づかずに、 nationlaity == "japan"
のときに特別な処理をして、「日本人以外の処理」に戻ってくると勘違いしてしまうことがあります。少なくとも、僕は、ifでelseが無い場合、本流の処理に入る前の特別な処理が書かれていることを想定して読むので、勘違いしがちです。
特に、整理されていないコードだと勘違いしがちです。少し恣意的かもしれませんが、以下のようなコードなら、勘違いが起きることもあると思っていただけるかと…
if elseの方が全体の流れを把握する時に勘違いしづらいと思います。(コードが整理されていない状態だとつらいかもしれませんが…)
最後に
以下のイメージを持って、意図に応じて使い分けていただくと、少し読み手に優しいコードになると思います。
- if: 本流の処理に入る前の特別な処理
- if else: 分岐して本流に合流しない処理