『リーダブルコード』について、学んだことをまとめました

rubyでlsコマンドを作成する課題で、コードを一通り書き終えることができたので、リファクタリングをするために Dustin Boswell・Trevor Foucher著『リーダブルコード』を読みました。

自分なりの簡単な要約

良いコードとは読み手が理解するのにかかる時間が少ないコードです。そのようなコードを書く段階として、表面上の改善(コメント、コードのリファクタリング)、ロジック・ループの改善、コードの再構成という段階があります。

表面上の改善では、コメントはコードの書き手の思考の軌跡を残すこと、コードのリファクタリングにおいては、簡潔で分かりやすい命名、一貫した整形が必要です。

ロジック・ループの改善では、制御フローで読み手を立ち止まらせないように自然なものにする。変数をできる限り少なくするなどのことが必要です。

最後の、コードの再構成をする際には、コードの処理を簡単な言葉で表して人に説明できるくらいにする。そして、その説明に合わせてコードを書く。このことを実際にやってみると、コードの流れが分かりやすくなり、また、大きな問題であっても、その処理を分割して考えやすくなります。このように、大きな問題であっても一つ一つ処理を分割していき、コードに一つの役割だけを持たせるということが分かりやすいコードを書く際には必要になってきます。

また、以上のことは、本書を読んだだけでは身につきません。実際に自分で継続してやってみて、自分の中で当たり前のこととしていくことが重要です。

感想

私はプログラミング言語はrubyしか触れていないため、本書に記載されているサンプルコードを理解することは中々できませんでしたが、それでも分かりやす文章で書かれていて、理解しやすかったです。

特に私の中で重要なことだと感じたのが、「読み手の立場になって考える」ということです。コードは変化するもので、コードを変更するのは自分だけではなく、そのコードを使っている人達です。コードを変更するコストを出来るだけ抑えるためにも、多くの人にとって分かりやすいコードは必須のことだと考えました。

しかし、その一方で、興味深かったのが、三項演算子のところで語られていた、コードを短くすれば良いということではないということです。私は、短いコードと読みやすいコードは両立し得るものだと考えていましたが、三項演算子などを用いて、コードを短くしすぎると、逆に読みにくくなってしまうということでした。

他にも、「やりすぎ」が読みにくさに繋がる例が紹介されており、例えば、コードを再構成するというところでは、「そのコードの高レベルの問題に影響を及ぼさない、下位問題の解決にのみ寄与しているコードを積極的に見つけて、それが多くある場合には一つの関数としてまとめる」という手法が紹介されていたのですが、これもやりすぎては読みににくくなってしまうということでした。

本書で紹介されている手法をやらずに汚いコードを書くこととはもちろん、やりすぎて読み手にとって読みにくいコードを書いてしまうこともあるということから、適切なさじ加減で読み手の立場に立って読みやすいコードを書いていく必要があると改めて考えました。

ここで、読み手の立場とは、チームならそのチームの技術レベル、コーディングルールなどもあると思うので、そこも踏まえて読み手の立場に立つということが必要なんだなと感じました。

しかし、いずれにせよ私はペーペーで、偉そうなことは言えないので、本書に書かれている内容を一つ一つ実践して、早く自分のものにして美しいコードを書けるように
なりたいと思いました。


読書メモ


この記事が気に入ったらサポートをしてみませんか?