アプリ開発を始めて1年目の僕はまだまだ経験も浅く、コードの書き方はわかってもどんなコードがいいコードなのかわからない。
どんなコードがいいコードなのか、どんなコードを書くのがいいのかを知りたかった僕は、アプリ道場の忘年会で知った「リーダブルコード」という本を読んでみた。
リーダブルコードにはこのようなことが最初に書いてある。
コードは理解しやすくなければならない。
via:リーダブルコード P.2
優れたいいコードというのは他人が理解しやすく、短時間で理解できるコードなのだという。
個人で開発していれば他人のことを考える必要はないと思うかもしれない。
だが、ここでいう他人というのは半年後の自分も含まれている。
「リーダブルコード」に書かれていた優れたコードを書くためのコツを紹介したい。
1.名前に意味を持たせる
func a (number:Int) ->Int { return number * 1000 }
上記はSwiftで書かれた、受け取った数値を1000倍にして返す「a」という関数だ。
処理はすごく単純だが、この「a」という関数を呼び出すときには、どんな処理が行われるかを想像するのは難しいだろう。
ではもう少しわかりやすくしてみよう。
func calculator (number:Int) ->Int { return number * 1000 }
中の処理は変わらないが関数名を「a」から「calculator」に変えてみた。
こうすれば「calculator」を呼び出すときには何か計算をしてくれるということがわかるだろう。
更にもう少しわかりやすくしてみよう。
func convertKgToGram (weightKg:Int) ->Int { var weight = weightKg * 1000 return weight }
関数の名前が「convertKgToGram」に変わり、関数の中の処理の書き方も少し変えてみた。
書き方は少し変わったが処理の内容は先程までと同じで、受け取った数値を1000倍にして返すという関数だ。
1つ目、2つ目と比べてみると、3つ目の関数はキログラムをグラムに変換する処理だということは一目瞭然である。
これが見てすぐわかる、優れたいいコードということだ。
2.コメントをつける
コードに書くコメントにも、つけていいコメントとつけてはいけないコメントがある。
/*重さをキログラムからグラムに変換する*/ func a (number:Int) ->Int { return number * 1000 }
つけてはいけないコメントをあえてつけてみた。
「重さをキログラムからグラムに変換する」というコメントをつけるくらいなら、
func convertKgToGram (weightKg:Int) ->Int { var weight = weightKg * 1000 return weight }
先ほど書いたように処理の中で使われている名前を変えるべきだ。
/* 受け取った数値が少数だとエラーになるという潜在的なバグがある 受け取るのは整数だけなのか? */ func convertKgToGram (weightKg:Int) ->Int { var weight = weightKg * 1000return weight
}
もしこの関数にコメントをつけるとすれば、上記のようになる。
コードの欠陥や自分の考えなどを書いておくといい。
/* 受け取った数値が少数だとエラーになるが、処理的には整数しか入ってこない。 少数が入る場合は他の処理で想定外の処理が行われている可能性がある */ func convertKgToGram (weightKg:Int) ->Int { var weight = weightKg * 1000return weight
}
メンテナンスや先のことを考えて、このようなことを書くのもいいかもしれない。
3.短いコードを書く
短いコードを書く目的は短時間で理解できるコードを書くことだ。
だから、ただ単に短ければいいというものではない。
理解できる時間が短くなるのならば、多少コードが長くなっても問題はないのだ。
問題は長すぎるコードだ。
複数の処理を行っている1つの関数というのは処理ごとに関数を分けた方が理解しやすくなる。
1度に1つのことを行うというのを意識するといいだろう。
リーダブルコードのまとめ
優れたコードというのは他人が理解しやすい、それもできるだけ短時間で理解できるコードだ。
本書を読んで優れたコードがどういうものか理解はできても、身に付けるのはすぐにはいかないだろう。
優れたコードを書く技術を身につけるにはとにかくやってみることが必要不可欠だし、それを続けていって初めて身につくものだからだ。
日々優れたコードを意識してアプリ開発を続けていきたいと思う。
Amazonのオススメ!
リーダブルコードは最近アプリ開発を始めたばかりで、コードを少しは書けるようになってきたという人が次のステップへ進むための1冊です!
リーダブルコードを読んで優れたコードを書けるようになりましょう!