リーダブルコードを読んで気づいた、コードの読みやすさの重要性

書評 リーダブルコードパソコン

あなたにとって読みやすいプログラムコードって、どういうものですか?

処理がシンプルであったり、わかりやすい関数名やコメントがあること、でしょうか。

どうせ書くなら、読みやすい/理解しやすいコードにしたくないですか。

本書「リーダブルコード」を読むことで、読みやすいプログラム・可読性を高めるための手法とメリットを知ることが出来ますよ。

みなさん、こんにちは! Nくまです。

今回は、ソフトウェア開発の書籍『リーダブルコード』について紹介と書評を書かせていただきます。

私は一介のソフトウェアエンジニアに過ぎませんが、実際にコード書いてて思うことは、プログラムコードは書いて動けばいいというわけではなく、読みやすくすることも重要ということは頻繁に感じます。

コードを読みやすくすることで、過去の自分が作成したプログラムが理解しやすく、再利用しやすくなったり、複数人で作業するプロジェクトにおいて、お互いに改変したりバグ修正することが簡単になるからです。

ただ、現実としては過去の自分のコードが理解しにくかったり、他人の意図が分からなかったりというのはよくあり得る話です。

そこで、今回は『リーダブルコード』という書籍の紹介と感想、読みやすくする重要性について書いてみました。

『リーダブルコード』を読む前と後で、コードを書く際の思考が変わるかもしれません。

Nくま
Nくま

本書で述べられている一つでも参考にすることで、自分が書くコードを読みやすくしつつ、結果的に品質を良くしていきたいですね。

この記事のポイント
  • リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック- (Dustin Boswell, Trevor Foucher 著 角征典 訳)について感想と書評です。
  • 読みやすいプログラミングコードを書くためのシンプルなテクニックについて書かれています。すぐに使えたり応用できるものがいくつか見つけられる。
  • 本書を読むメリット
    • プログラムのコーディングにおいて、読みやすさ/理解しやすさについて考える良いキッカケになる。
    • 読みやすくするためのシンプルなテクニックを知ることができる(すぐに試せることが多数掲載)
  • こんな方におすすめ
    • プログラミングにご興味のある方
    • 実際にコーディングされている方

本書を読むキッカケ

本書を読むキッカケですが、リベ大・両学長のオススメ書籍にあり気になっていました。

両学長おすすめ書籍一覧
YouTubeやTwitterでもご紹介したリベ大両学長おすすめの書籍をまとめて掲載しています!お金・投資・保険のことなど、リベ大マインドを学ぶための良書を取り揃えています

プログラミングに関しては、私は仕事で(ほぼ毎日のように)使っていますので、少しでも良くしたいという気持ちもあります。

それに、自分一人だけのコードというわけではなく、

  • 複数人で編集したり、
  • 改変した部分をチームでレビューしたり

することは日常茶飯事なので、読みにくいコードというのはそもそも理解に時間かかりますし、バグの温床になりやすいです。

これはあるあるだと思いますが、実際、他人が作ったコードが理解しにくいものだったり、レビューしたくて理解に時間がかかってしまうことが良くあります。

補足資料があったりすると理解の手助けになるのですが、そういうものが無かったりすることも多く、無駄な時間がかかっていることを感じていました。

よって、こういう本を読んで少しでも実務に活かしていきたいと考えております。

本書からの気づき

本書のデメリット

本書は主にプログラミングに関する本になっているため、対象となる方は限定的となります。

また、人によっては以下のようなデメリットがあるかもしれません。

  • 既に知っている内容が多くて参考にならないかも。
    • 名前に意味をもたせる。わかりやすい条件分岐
  • 内容がシンプルすぎて、物足りなさを感じるかも。

全体を振り返ってみると、経験豊富なベテランエンジニアには物足りなさを感じるかもしれません。

本書のメリット

リーダブルコードのメモ

まずは、気軽にさっと読めることが本書の特徴です。ゆるく提案されていて、読者の可能な範囲で考えることが出来ます。

また、コードの読みやすさ/理解しやすさにつながるシンプルなテクニックを知ることが出来ます。

処理は同じでも、読みやすくする事例がいくつも紹介されており、大変おもしろいし、参考になります!

私が印象に残っているのは以下の3つです。

  • 名前に情報を詰め込む
  • 適切なコメント
  • 分かりやすい条件分岐

順番に見ていきましょう。

名前に情報を詰め込む(変数名、関数名は分かりやすく)

普段、私は、C言語やPythonからアセンブリ言語まで、ちょっとずつ触っています。

そんな中、変数名や関数名をぱっと決められない時があるので、悩ましいです(適当な名前になったり、長くなりすぎてしまったり・・・)。

本書では、こういうときはこういう英単語という一例があるので、それを参考にできるのがいいところですね。

また、具体的な名前が良いということで、あまりシンプルになりすぎないようにしたいものです。

一方で、変数としてtemp, tmp, retval を定義して使ったりしますが、あまり意味が通じないものについてはなるべく避けるようにします。

適切なコメント(正確で簡潔)

効果的なコメントは合ったほうが理解しやすいです。

特に、どのような考え・思想・狙いがあるのか。そういうのはコードから読み解けない場合がありますからね。

私の場合、コメントはどちらかというと多めに書いてしまうため、かえって読みにくいと言われることがあります。

無駄なコメントや冗長なコメントは不要ということで、効率的・効果的なコメントを気をつけていきたいものです。

分かりやすい条件分岐

複雑なロジック・判定文をシンプルにすることで、条件分岐が分かりやすくなります。

条件分岐やループ文はよく記述する一つになります。

そんな中、複雑なロジック・判定文は読んでもすぐ理解できないことが多いですし、間違いのもとになってしまうますね。

簡単なことではありますが、判定文をシンプルにしたり、書き方を少し工夫するだけでも読みやすくなるようなので、実際にやってみたく思いました。

コードの見やすさの重要性(経験上)

書籍

繰り返しになってしまいますが、私の経験からも、コードを読みやすく/見やすくすることは重要です。

仮に読みづらい/理解しづらいコードだった場合のことを考えてみました。

想定されるダメパターン
  • 過去のプログラム資産があっても、理解に時間がかかったり、設計思想がわからないときがある。修正したり、再利用しずらい。
  • プロジェクト内でコードのレビューするとき、処理の理解に時間がかかってしまう。
  • 過去の自分が作ったプログラムが、どういう意図だったか思い出せなくなってしまう。

一方で、想定される良いパターンを考えてみました。

想定される良いパターン
  • 過去のプログラム資産を理解しやすくなり、再利用しやすくなる。
  • プロジェクト内でコードのレビューをするとき、スムーズにできる。
  • 過去の自分が作ったプログラムが、どういう意図だったか思い出しやすい。

本書でも述べられていますが、自分が書いた昔のコードはどういう狙いがあったのか、どういう意図だったのか忘れてしまうことがあります。

そういうときにこそ、コメントを残しておいたりとか、文書メモやフローチャートを残しておけばよかったとか、考えることが多々あります。

そんな状態でもありますし、他人のコードを読んで分かりにくいことは多々あります。

設計思想や、どういうアルゴリズムなのか、人によって考えることはバラバラなので認識が合っていないところがあるのでしょうね。

せめて、本書で述べられている読みやすいコードで書いたりしていきたいものですね。

また、それだけでは足りないこともあるかと思いますので、どういう考えで作ったのか、設計思想について何かしら残していきたいものですね。

まとめ

今回はプログラミングに関する書籍「リーダブルコード」について記事にしてみました。

本書を読むことで、読みやすさ/可読性についてのテクニックを知ることが出来たことと、普段はなかなか気づくことが出来ない、コードの読みやすさのメリットを知ることが出来ました。

  • 複数人で取り組むプロジェクトにおいて、理解しやすいと有利に働く。
  • 自分が書いた以前のプログラムを忘れていることがあるため、思い出すことが容易になる。

私にとって、本書の半分以上は新しい知見でしたし、これをキッカケに読みやすさについても考えるようになりましたので、私のようにプログラミングされる方にとって必読の書となっております。

これからプログラミングを始める方や、少しでもコードを書いている方にとって有益な情報がありますので、気になる方は本書を読んでみてください。

追伸

自分にとってプログラミングはそこまで得意とは思っていないので、あまりこういう記事は書くつもりは無かったのですが、本書を読むことでいい影響を受けました。

さっそく出来るところから活用してみようと思います。

また、この記事を書こうとしたのも、この本を読むことで実際に名前をどうしようかとか、正確で簡潔なコメントは何だろうとコーディングの際に考えるようになったからです。

それが、実際の読みやすさにつながっているかはまだわかりませんが、いい意味での影響を受けた本なので、紹介させていただきました。

みなさまの参考になれば嬉しいです。

それではまた🐧

コメント

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