リーダブルコード - 読書記録¶
📁 docs/reading-notes/20260408_031634_リーダブルコード.md
| 項目 | 内容 |
|---|---|
| 書籍名 | リーダブルコード |
| ISBN | 978-4-87311-565-8 |
| 記録日 | 2026-07-25 |
書籍から得られた最も重要な学び¶
コードは自分だけのものではなく、他人(未来の自分を含む)が読むために書くもの。命名・コメント・構造のすべてにおいて「読み手の認知負荷を下げる」ことを意識することが可読性向上の本質。
章別 学びのポイント¶
第2章(p.27):明確な単語を選ぶ¶
getのような曖昧な動詞より、fetch・downloadのような具体的な動作を示す単語を選ぶtemp・retrievalのような汎用的な名前はなるべく避ける- 明確な理由がある場合は例外(ただし意図を示すコメントを添える)
- 変数名は「状態・データが一言で判断できる」ものが理想
第3章(p.30):誤解されない命名¶
命名が「別の意味に取られないか」を確認することが重要。
| 曖昧な名前 | 問題 | 改善例 |
|---|---|---|
filter | 選択するのか除外するのか不明 | select / exclude |
clip | 切り抜くのか切り取るのか不明 | truncate / remove |
→ その単語を見ただけで振る舞いや状態が判断できる命名にする
第4章:美しさ(フォーマット・レイアウト)¶
- コードのフォーマットやレイアウトは既存のメソッドに揃える
- 同様の振る舞いをするメソッドが既に存在する場合は、文体・構造を合わせて記述する
第5章:コメントすべきことを知る¶
コメントの目的は書き手の意図を読み手に知らせること。
コメントすべきもの: - なぜその挙動になっているのか(Why) - なぜその実装を選んだのか(Why) - ファイルやクラスの全体像
コメント不要なもの: - 細かい中間変数・制御変数(変数名だけで判断できるようにする) - ループ制御のための補助変数
→ 変数名で意味が伝わるように命名することが先決。処理の結果の状態を判別できる名前にするのが良い。
第7章:制御フローを読みやすくする¶
if文の比較は左辺・右辺に書くものを統一する:
| 位置 | 書くもの | 例 |
|---|---|---|
| 左辺 | 変化するもの(変数) | age |
| 右辺 | 変化しないもの(定数・比較対象) | 10 |
- ネストは浅く保つ — 早期リターンや条件の整理でネストを減らす
第8章(p.100):巨大な式を分割する¶
説明変数・要約変数の活用:
- 複雑な式には「これって何?」を一言で表す説明変数を導入する
- 長い条件式は要約変数にまとめて意図を示す
ただし変数の使いすぎに注意: - 邪魔な変数が増えるほど認知負荷が上がる - 変数を追加するなら明確な意図を持って追加する
変数スコープを小さくする工夫: - プライベート変数にする・使用箇所を限定する - final/const を使い「上書きされない保証」を読み手に伝える → 認知負荷を下げる
ネクストアクション¶
| # | アクション | 具体的に |
|---|---|---|
| 1 | 命名を明確にする実践 | 実際のプロジェクトで変数名・関数名を見直す |
| 2 | コメントの質を上げる | 「なぜ」を書く・変数名で自明な箇所のコメントを削る |
| 3 | if文の左辺・右辺を統一する | コードレビューでもこの観点を見る |
| 4 | 変数スコープの最小化 | const/final・プライベート変数の活用を習慣化 |
| 5 | チームで読書会の実施 | 命名規則・コメント方針をチームで議論する機会をつくる |