Output Diary

プログラミング × 読書 のアウトプットを発信しています

【本要約】リーダブルコード


f:id:kina_kq:20210329112228j:plain


本書では、「読みやすいコードを書くためにはどうしたらいいの?」という初学者に向けて、分かりやすく、丁寧に解説をしています。


この本の目的


  • 読みやすいコードを書くことの重要性を理解すること。
  • 他人がすぐ理解できるコードが書けるようになること。

読みやすさの基本原理


コードは他の人が最短時間で理解できるように書かなければいけない


同僚にコードを読んで貰った時、

「この人何をやりたかったのだろう」と思わせてしまうコードを書いていたら、

当然相手が理解するに至るまで時間がかかってしまいます。


「コードなんで自分が分かっていればよくね」と考えてはいけません。

たとえ一人で開発しているプロジェクトだったとしても、半年後、1年後に見返したときにそのコードを書いた時の意図を覚えている自信があるでしょうか。


、、、。忘れているのではないでしょうか。ちなみに私は3日たてばだいたいのことは忘れます(笑)


「何だこのコードは、、。何をしたかったのか、何をしていたのか全く分からないぞ」という状況に陥ってしまいます。


1人でやっていたプロジェクトでも、途中から別の誰かがやってくるという可能性もあると思います。その時に「このコードの意味ってなんですか」って毎回聞いてくるような人だったらだんだん疲れますよね。作業効率が急激に低下してしまいます(相手も自分も)。

そのため、誰がみても分かりやすいコードを書くことは開発速度を上げることに繋がります。


本日は、「名前の付け方」「コメントの書き方」について絞って紹介をしていきます。

名前の付け方


この名前の付け方って聞いてなんの名前だよって思った方いたらすみません。

この名前とは、変数・関数・クラスの名前に関してになります。

基本思想


  • 名前に情報を詰め込もう

名前の付け方で意識すること6選


  • 明確な単語を選ぼう
  • 汎用的な名前を避けよう
  • 抽象的な名前よりも具体的な名前を
  • 接尾辞や接頭辞を使って情報を追加
  • 名前の長さを決めよう
  • 名前のフォーマットで情報を決めよう


今回はこの中の「明確な単語を選ぼう」に絞ります。


明確な単語を選ぼう


目的に適した名前をつけることがとても大切です。


例えば、 def GetPage(URL):</span>

と書かれているコードがあるとします。


しかしこの「get」という単語をみて、どこからページを取ってきたいのかわかるでしょうか。


改善策として、

FetchPage()DownloadPage()に変えましょうと述べています。 こうすることでひと目で理解できるコードになりました。


他にも本書では、

stop()じゃその時の様子がわからないよね。

取り消しができないほど重い作業とかならkill()でいいんじゃない?


といった感じに英語には類語も沢山あるからその時の状況にあった適した単語をつけようよといった感じです。


stop()よりkill()の方が状況がひしひし伝わってきますね。


コメントの書き方


コメントは「コードの動作の目的を説明」することだけではありません。

コメントの目的は、書き手の意図を読み手に知らせることです。


コメントでしてはいけないこと


  • コードからすぐわかることをコメントに書かない
  • コメントのためのコメントをしない


コメントは無理に書く必要はないですし、

コードをみたらすぐにわかることをコメントで書く必要はありません。


価値のないコメントは極力しないようにしましょう。

コメントで意識すること


  • 読み手の立場になって考える


これめちゃくちゃ難しいですよね。

面接の質問予測集を作るイメージですかね。


意識することは、


  • 質問されそうなことを想像する。
  • はまりそうな罠を告知する
  • 「全体像」へのコメント


になります。


コードを読んだ人が「これどういう意味だ」ってなる前に先にコメントで説明しておきましょう。


コメントは別に丁寧な文章にする必要はありません。


「やばい。リストに重複あったぞー面倒なことになりそうだ」 みたいなコメントでも全然OKと本書では言っています。


自分が考えていることをコメントでその時その時で書き出しておくと、あとで振り返ったときに思い出しやすくなります。


感想


いつも「みたまま記法」で書いていたのですが、久しぶりに「Markdown記法」で書いてみたら文章書くのに時間がかかりました。


なにか詰まったときとか確認がてらに、チラってこの本を見返すのはとても良いなと思いました。 分厚い本ではないので持ち運びに便利なのがとても嬉しいです。 一週間後くらいには、後編したいです。
気になる方はぜひ買って読んでみてください。
感想待ってます。

「リーダブルコード」
https://amzn.to/3dbFqbK


f:id:kina_kq:20210312133602p:plain