『リーダブルコード』を読んだ感想|より良いコードを考えるきっかけに

書斎の机に置かれたパソコンと開いた本、処理の流れを描いたメモ 思考を強くする

広告:この記事には楽天アフィリエイトの広告リンクを含みます。リンク経由の購入により、運営者に報酬が入る場合があります。

『リーダブルコード』は、私にとって、コーディングの基礎や「どうすればより良いコードになるのか」を考えるきっかけになった本です。

この感想を入口に、コードを見直すときに使える問いを整理してみます。書籍の内容紹介は出版社の情報に基づき、後半のコード例はこの記事のために作成したものです。本書からの転載ではありません。

『リーダブルコード』はどんな本か

正式な書名は『リーダブルコード――より良いコードを書くためのシンプルで実践的なテクニック』。Dustin Boswell、Trevor Foucherの著作を角征典が翻訳し、オライリー・ジャパンから2012年に刊行されています。

出版社の紹介では、理解しやすいコードという原則を、名前、コメント、制御フロー、論理式、変数、コードの再構成、テストなどに当てはめる本と説明されています。特定の文法を覚えることに加えて、書いたコードをどう伝わりやすくするかを考えるための本として位置づけられます。出版社の書籍紹介

読んだ感想:より良いコードを考える入口になった

私がこの本から得たものとして挙げたいのは、コーディングの基礎を見つめ、「どうしたらもっと良くなるか」と考えるきっかけです。

動くコードを書くことは大切です。そのうえで、読み手が内容を理解できるか、変更するときに意図をたどれるか、という問いもあります。「より良い」の中身を言葉にしようとすると、自分が何を基準にコードを見ているかが表れます。

読みやすさについて考えるときは、「きれいだから」という感想から一歩進みたいところです。どこで読み手が迷うのか。何を補えば意図が伝わるのか。そうした問いに分けると、次に直す場所を具体的に選べます。

小さなコード例で、名前から伝わる情報を考える

ここでは、待ち時間を表す変数を例にします。JavaScript風の短い例ですが、特定のライブラリの使い方を示すものではありません。

const t = 3000;

この一行だけでは、tが何を表すのか、3000の単位が何かは分かりません。周囲のコードを読む必要があります。「待ち時間をミリ秒で表している」という前提なら、次のように書く案があります。

const timeoutMs = 3000;

値は同じでも、名前から読み取れる情報は変わります。ただし、長い名前なら何でも良いわけではありません。プロジェクト全体で秒を使う約束があるか、同じ役割の変数がどんな名前か、といった文脈も確かめる必要があります。

ここで考えたいのは「この名前だけが正解」ということではなく、読み手にどの情報を渡し、どの推測を任せているかです。名前を変えた理由を説明できると、ほかの案とも比較しやすくなります。

自分のコードに向けたい3つの問い

詰まった行と整理された行を描いた2枚の紙を見比べ、読みやすさを考える手元
読み手がどこで迷うかを考え、変更した理由を言葉にする。図は概念的なイメージです。(AI生成イラスト)

1.何をしているか、名前から予想できるか

変数名や関数名を見て、何を受け取り、何を返すのかを予想してみます。実際の処理と名前がずれていれば、どちらを見直す必要があるかを考えます。

2.ここで一度立ち止まるのは、なぜか

条件が複雑なのか、一つの場所に複数の役割が混ざっているのか、前提が見えないのか。読みにくさを一語で片づけず、原因を仮に言葉にします。

3.変更した理由を、他の人に説明できるか

「何となくきれいにした」ではなく、「単位が分かる名前にした」「別の目的の処理を分けた」のように説明してみます。短くした結果、かえって意図が見えにくくなっていないかも確認できます。

この3つは、読書を自分の作業につなげるための記事独自の提案です。本書のチェックリストをそのまま再現したものではありません。

買う前に確認したいこと:今の悩みに合うか

私なら、まず自分のコードで困っていることを一つ書いてから目次を見ます。次の整理は、購入を判断するためのこの記事独自の目安です。

今の悩み読む目的・先に確認したいこと
動くけれど、名前やコメントに自信がない意図を伝える表現を見直す。出版社の目次で命名・コメントの項目を確認する。
自分で書いた条件分岐を読み返すと迷う何が理解を難しくしているかを整理する。短くすることだけを目標にしない。
まだ変数や関数の書き方が分からない使う言語の入門資料で、小さなプログラムを書く練習も進める。
最新のフレームワークやAIツールの操作を知りたいその製品の公式資料を確認する。本書の刊行は2012年で、最新ツールの操作ガイドとは目的が異なる。

本を読むだけでレビューの指摘がなくなる、といった効果を保証するものではありません。自分が困っている箇所を持ち込み、提案がそのコードに合うかを考えながら読む使い方がよいと思います。

条件式の読みやすさを、変更前後で比べる

次は、この記事のために作ったJavaScriptの例です。書籍からの転載や、筆者の実務で改善効果を測った事例ではありません。前提は「有効な会員で、支払額が3,000円以上なら送料無料」です。

短いけれど、判断の意味が見えにくい書き方

function shippingFee(u, n) {
  return u.active && n >= 3000 ? 0 : 500;
}

処理は短くまとまっています。ただ、uは誰なのか、nは何の金額なのか、3,000という境界は何のためにあるのかを、読む人が補う必要があります。

何の条件かを名前に出す書き方

function shippingFee(member, subtotalYen) {
  const freeShippingMinimumYen = 3000;
  const standardShippingFeeYen = 500;
  const qualifiesForFreeShipping =
    member.active && subtotalYen >= freeShippingMinimumYen;

  return qualifiesForFreeShipping ? 0 : standardShippingFeeYen;
}

行数は増えましたが、「送料無料の条件を満たすか」という判断と、金額の単位が見えるようになりました。activeは真偽値、金額は円単位の数値とする例です。送料ルールそのものは変えていません。

読みやすさだけでなく、境界の動作も確かめる

会員の状態金額変更前後の送料
有効2,999円500円
有効3,000円0円
無効3,000円500円

「3,000円以上」をうっかり「3,000円より大きい」に変えると、見た目が整っていても別の処理です。名前を直すことと、挙動を変えないことは、別々に確かめる必要があります。

一方、この長さが常に最適とも限りません。同じ定数がすでに共通設定にあるならそれを使う方がよく、チームで意味が明確な名前まで長くする必要はありません。短いか長いかより、読み手がどの情報を推測せずに済むかで比較すると、変更する理由を説明しやすくなります。

読む前に、目次と自分の悩みを照らし合わせる

「変数名をどう決めるか迷う」「コメントをどこまで書けばいいか分からない」「条件分岐を追うのが難しい」といった悩みがあるなら、出版社が公開している目次で、関連する章を確認できます。

一方、プログラミング言語の文法や実行環境の準備を最初から学びたい場合は、そのための入門資料も必要です。購入を考えるときは、自分が今知りたいことと、本書の扱う範囲を照らし合わせてみてください。

『リーダブルコード』の内容・目次・販売情報を出版社で確認する

楽天ブックスで紙の本を確認する(広告)

リーダブルコード より良いコードを書くためのシンプルで実践的なテクニ (Theory in practice) [ ダスティン・ボズウェル ]

価格・在庫・配送条件は販売ページでご確認ください。

読み終えた後は、小さな変更の理由を一つ残す

学んだことを試すなら、まずは自分の練習用コードから一か所選び、変更前と変更後、その理由をメモしてみる方法があります。仕事のコードを扱う場合は、チームの方針やレビューの手順に沿って進めましょう。

本の説明を自分の言葉で思い出す練習には、アクティブリコールのやり方も使えます。「どの名前がいいか」だけでなく、「なぜそう判断したか」を考えることは、メタ認知にもつながります。

私にとっての『リーダブルコード』は、コーディングの基礎と、より良いコードを考える入口になった本です。その入口から、自分のコードに一つ問いを向けてみる。読書を次の作業につなげるなら、そんな小さな一歩から始められそうです。

AIも学習に活かしたい方へ:GPT-6 Astraの解説と、コードの修正理由を説明してもらう頼み方をまとめました。自分の判断とAIの提案を比べる練習に使えます。

コメント

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