【リーダブルコード】良いコードを書くための原則【上級編】
今までリーダブルコードの記事を書いてきましたが、今回で最後になります。
今回はさらに深く、規模が大きめの変更をする考え方について解説していきます。
具体的には、
- 関数から汎用コードを抽出する
- 1度に1つのことだけをやらせる
- 分かりやすく短いコードを書く
の3つについて解説していきます。
1、関数から汎用コードを抽出する
関数の中ではしばしば主目的と関係の無い処理を書かなければいけなくなる時がある。
例えば、2つの距離を算出する関数があったとする。
この時、1つの値の単位がkmでもう1つの値の単位がcmだった場合は単位を合わせる必要がる。
つまり、この関数の主目的は2つの距離の算出であり、単位を合わせるという処理は主目的とは関係ない。
なので、この単位を合わせるという処理を別の関数として切った方が良い。
このような処理を関数として別に切った方がコードの見通しが良くなる。
また、今回のように汎用的に使える処理の場合は他の関数からも呼び出せるようになる。
つまり、関数から汎用コードを抽出することでDRYの原則に則ったコードを書くことができる。
ただ、もちろんやり過ぎは逆効果になります。
小さい単位で関数を抽出しまくったら逆にコードの見通しが悪くなる。
また、汎用的ではないコードを抽出しても恩恵はあまりない。
なので、そこは気をつける必要があります。
2、1度に1つのことだけをやらせる
「関数には1つのことだけをさせよう」
というアドバイスはよく聞きますよね。
今回紹介するのはそれと同じような考え方です。
やりたいことがごちゃ混ぜになっているような関数は分かりにくいです。
なので、まずこの関数の中で行われていることを列挙しましょう。
そして、先ほど紹介したようにこの中から汎用的に使えそうなものがあれば抽出します。
あとは処理ごとに段落に分けて書けば完成です。
これで大分読みやすくなるかと思います。
このように、1度に色々なことをやろうとするととても分かりづらくなるので分けて考えるのが大事です。
3、分かりやすく短いコードを書く
おばあちゃんがわかるように説明できなければ、本当に理解したとは言えない。
というのはアインシュタインの言葉です。
プログラムを書く時も同じことを意識しましょう。
おばあちゃんとまで言わずとも、駆け出しのエンジニアでもわかるようなコードを心掛けましょう。
そして、そのためには今から実装する内容を一度言葉にしてみるというのも大事です。
例えば、有料会員限定の限定画像を表示するページは以下のように説明できます。
//APIからユーザーデータを取ってくる
//APIからの結果を正常と異常に分けて処理する
//異常な場合はエラーメッセージを書く
//正常な場合はユーザーの権限を見る
//権限があった場合は限定画像をリサイズして表示する
//権限が無かった場合はその趣旨を画面に表示する
このように一度言葉にすることでとても分かりやすくなります。
また、コードを書くときはなるべく量を少なくするようにしましょう。
今回の例で言うとユーザーの権限を確認する所まで汎用的な関数として抽出できそうです。
また、画像をリサイズするという処理はライブラリを使って簡単にできそうです。
プログラマーはこのようになるべく少ないコードで実装する方法を考えるのも大事です。
なぜなら、小さいプログラムの方がメンテナンスコストが小さくて済むからです。
おわりに
3部に分けてリーダブルコードを解説してきました。
今回書いたことを意識するだけでもかなり質の良いコードを書けるようになるかと。
自分も日々学習してさらに良いコードが書けるように精進していこうと思います。
最後に宣伝です。
0からエンジニアになるためのノウハウをブログで発信しています。
また、YouTubeでの動画解説も始めました。
YouTubeのvideoIDが不正ですインスタの発信も細々とやっています。
興味がある方は、ぜひリンクをクリックして確認してみてください!
おわり
Discussion