Web制作・プログラミング関連のおすすめレビュー記事はこちら

【書評・レビュー】『リーダブルコード』の要約・感想まとめ

プログラミング

エンジニアにおすすめの書籍として『リーダブルコード』が挙げられることがよくありますね。

もとは英語の書籍ということもあり、

なんとなく難しそう...」、「自分にはまだ早い...

と思ってる方も居るのではないでしょうか?

筆者自身まだまだプログラミング学習中の身ですが、「もっと早く読めばよかった!」と少し後悔したので、重要だと感じた部分を簡単に要約しつつ、感想をまとめてみました。

理解しやすいコードって?

理解しやすいコードの方が良い。

そんなことはわかってるけど、じゃあ具体的に何を改善したら良いの?

本書はまさにそんな疑問に答えてくれます。

他人が最短で理解できるコードを意識しよう

コードは他人が最短で理解できるコードでなければならない

これは個人で学習・開発していると気づきにくい+軽視しがちな部分じゃないでしょうか?

初心者のうちは「どうせ自分しか見ないし、、、」と考えがちですよね。

しかし、ここで言う"他の人"とは数カ月後の自分も含まれています。

数ヶ月前に自分が書いたコードを見ると、まったく理解できないまでとは言わずとも

...あれ、ここどうなってるんだっけ...?」と少し考えてしまうことがあるでしょう。

つまり、後々の自分を含めたすべての人が最短で理解できるコードを意識しよう、という事です。

コードの短さよりも理解にかかる時間の短さを優先しよう

これは初心者よりも少しコードが書けるようになった段階で陥りがちな気がします。

複雑な処理を無理に短くまとめて、

エンジニア
エンジニア

よっしゃ、めっちゃスッキリ書けた!俺って天才...?

というオレオレコードはやめようね、という話。笑

重要度は「コードの短さ < 理解にかかる時間の短さ」です。

本当にそのコードが理解しやすいのか一度立ち止まって、客観的視点で確かめましょう。

名前に情報を詰め込む

ここで言う「名前」とは「変数名」ことだと思ってください。

では具体的にどんなことを意識すればいいのでしょうか?

明確な名前をつける

気取った言い回しよりも明確で正確な方がいい

例えば、getPage(url)という関数があったとしましょう。

関数内のコードを読まずに、名前だけを見たときにすぐに役割がわかりますか?

どこからページを取ってくるの?、インターネットから?データベースから?

まだ少し疑問が残りますね。

もしインターネットから取ってくるのならdownloadPagefetchPageの方が明確です。

とまぁ、ここまでが書籍で挙げられていた内容ですが、個人的に正直ここは「すぐに改善するのは難しいな」と感じました。

何度もコードを書いていくことで頻出の表現を覚えるのが良さそうですね。

汎用的な名前を避ける

例えばretval(return value = 返り値の略)などの汎用的な名前をつけたとしましょう。

この名前からは「返り値であること」しか情報を得られません。
(関数から戻ってくる値の時点で返り値なのは当たり前ですよね。)

retvalという名前には情報がない。変数の値の性質を表した名前を付けよう。

変数の性質をしっかりと表した名前をつけることで、理解しやすさだけでなくバグの発見にも役立ちます。

関数を書くときに気をつけること

プログラミングをしていく上で避けて通れないのは、「関数」です。

初心者のうちは一つの関数がどんどん肥大化していく、、、なんてこともよくありますよね。

そんな問題への具体的な解決法が紹介されています。

上位問題と下位問題を切り分ける

例えば、最終的な目標が「タスクAを処理すること」である関数があったとします。

ただ「タスクAを処理するためには前準備としてタスクBを処理することが必要」だと仮定しましょう。

つまり順番としてはタスクBを処理→その結果を使ってタスクAを処理です。

ここで一つの関数にタスクBの処理をしてからタスクAを処理する」というロジックを詰め込むのは適切ではありません、というお話です。

本書ではタスクAを上位問題(最終的に達成したい処理)、タスクBを下位問題(最終目標の過程に過ぎない処理)と定義しています。

これらを切り分けて小さな関数に分けることが理解しやすいコードに繋がります。

一度に一つのタスクを

タスクをどのように分割するかよりも、分割するということが大切なのだ。

一つの関数内で並行していくつもの処理を行うのはやめましょう、ということです。

他人が理解しにくいだけでなく、バグの温床にもなってしまいます。

ここでは、具体的ステップとして以下の方法が紹介されていました。

  • コード内で行われているタスクを全て列挙
  • 別の関数などに分割できないかを検討する
  • 残ったものを論理的な「段落」に分ける

上のステップに沿って「一度に一つのタスクを」という原則をしっかりと守れば、見通しの良いコードが書けるようになるでしょう。

ただ、個人的にここが一番難しいと感じた部分でもあります。

具体的な切り分け方や改善方法は割愛するので、ぜひ書籍で確かめてみてください。

まとめ

今回は『リーダブルコード』を簡単に要約&感想をまとめてみました。

"より良いコードを書くためのシンプルで実践的なテクニック"と謳っているだけあって、他にもすぐに使えるテクニックがかなり詰まっている印象です。

早いうちからこの本の内容を意識できればかなりレベルの高いコードを書けるようになるんじゃないでしょうか?

今回触れた内容はほんの一部に過ぎないので、もっと詳しく知りたい方はぜひ購入してみてください。

この本では実際の現場のコードを使って例が挙げられているのでイメージしやすく、初心者から上級者までおすすめできます。

タイトルとURLをコピーしました