ISBN 9784873115658
リーダブルコード : より良いコードを書くためのシンプルで実践的なテクニ
- 出版社
- オライリー・ジャパン
- 刊行
- 2012-06
概要
コードを読む人を主語に置いた命名・構造・コメント設計を実践する
想定読者
コードレビューや保守対応で「読みにくい」と感じ始めた経験1〜4年のエンジニア
こんな人には向いていない
- DDD・Clean Architecture など設計思想の体系的な理論を求める読者には、本書は原則の適用例が中心で設計パターンの網羅的な解説は得られない
- 特定フレームワークやAPIの習得を目的とする初学者には、本書は言語・FW非依存の原則集であるため即効感が得にくい
- コードレビューでリーダブルコードの原則を既に日常的に実践しているシニアエンジニアには既知の内容が多い
この本で身につくこと
- 変数・関数・クラスの名前に「何をするか」と「何をしないか」を込め、名前だけで意図が伝わるコードを書ける
- 条件分岐のネストや早期リターンの使いどころを判断し、制御フローを読む順番に沿って整理できる
- コメントに「何を」ではなく「なぜ」「何に注意すべきか」を書く習慣を身につけられる
- 大きな関数を関心ごとに分割し、テスト可能で再利用しやすい粒度に再構成できる
- テストコードを仕様のドキュメントとして機能させる書き方の基礎を習得できる
ハイライト(外部からの言及)
コードは理解しやすくなければならない。本書はこの原則を日々のコーディングの様々な場面に当てはめる方法を紹介する。 — 出典
「動く」ではなく「理解できる」を優先基準に置くという本書の立場が最も端的に表れている宣言文
章立て
表面上の改善:名前の付け方とコメントの書き方
即効性が最も高い領域。コードレビュー前後に繰り返し参照する使い方が実践者に共通している
ループとロジック:制御フロー・論理式・変数の扱い
ネストの深さや条件式の書き順を見直す具体的な指針が集中しており、既存コードの改善に直結する
コードを再構成する
大きすぎる関数を分割する判断基準を学べる章。設計入門書への橋渡しになる内容
テストと読みやすさ
テストを「仕様のドキュメント」として設計する視点を初めて意識するきっかけになる
関連記事 / 参考情報
- プログラミング勉強を加速させる7つの習慣 — 読書・写経・アウトプットの習慣形成の中でリーダブルコードをコード品質の基礎として位置づける
- 新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 — 入社前後に読むべき技術書の選定理由を丁寧に解説した定番推薦リスト
- 【Webエンジニアど素人から3年生ぐらいになるまでに読むと良い本】を段階的にまとめた — 習熟度別に読む本の順序を段階的に整理した、キャリアパスが見えるロードマップ型推薦記事
- Naming -名前付け- — 本書の命名原則を実コードで具体化した実践解説。リーダブルコードの概念を現場で使う橋渡し記事
- 関心の分離を意識した名前設計で巨大クラスを爆殺する — 命名によってクラス責務を分割する設計手法を解説。本書の延長線上にある実践的クラス設計論
- リーダブルコードの要点整理と活用法をまとめた — 各章を要約した二次資料。通読後の復習・チームへの共有用として高く支持されている
- 新人時代に読めば良かったと後悔するほど感謝した技術書4冊 — 現場経験を積んでから振り返ると価値がわかる、という観点でリーダブルコードを再評価した体験記
学習のヒント
- 本書は章が短く独立しているため、通読より「コードレビュー前後に1〜2章確認する」参照書としての使い方のほうが知識が実務に定着しやすい
- 各章の「悪い例 → 良い例」の対比を、自分が今書いているコードで置き換える練習をすると読書が即座に実務直結する
- 日本語版巻末の須藤功平氏による解説は、日本語命名や日本チームの開発文化との接続点として、通読後に読むと理解が定着する
- 読後はチームのコードレビューで「リーダブルコードの命名原則」を共通言語として使うと、フィードバックの精度と受け入れやすさが上がる
前提知識
- いずれかのプログラミング言語で 100 行以上のコードを書いた経験(言語は問わない)
- チーム開発またはコードレビューを通じて「他者のコードを読む」場面を経験したことがある
次に読む本
リファクタリング(第2版): 既存のコードを安全に改善する
本書で可読性の原則を学んだ後、既存コードを体系的な手順で安全に改善する技法を習得する定番書
良いコード/悪いコードで学ぶ設計入門
リーダブルコードより一段踏み込んだクラス設計・オブジェクト設計の原則を、豊富な例で学べる日本発の実践書
Clean Code アジャイルソフトウェア達人の技
同じ「コードの読みやすさ」を扱いながら、より大きな設計判断・プロフェッショナリズムまで踏み込んだ上位互換的な内容
出版社による内容紹介
コードは理解しやすくなければならない。本書はこの原則を日々のコーディングの様々な場面に当てはめる方法を紹介する。名前の付け方、コメントの書き方など表面上の改善について。コードを動かすための制御フロー、論理式、変数などループとロジックについて。またコードを再構成するための方法。さらにテストの書き方などについて、楽しいイラストと共に説明する。日本語版ではRubyやgroongaのコミッタとしても著名な須藤功平氏による解説を収録。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。