↓ メインコンテンツへスキップ

『リーダブルコード』の要点まとめ

須原 大護
著者
須原 大護
大学院生。Metal3のメンテナー。
目次

はじめに
#

『リーダブルコード』で紹介されている、読みやすいコードを書くための考え方をまとめます。

『リーダブルコード』の表紙

『リーダブルコード』をAmazonで見る

1. 理解しやすいコード
#

  • 良いコードとは、他の人が最短時間で理解できるコードである
  • コードの行数よりも、理解にかかる時間を重視する

2. 名前に情報を詰め込む
#

  • 明確な単語を選ぶ:Getよりも、動作が伝わるFetchやDownloadを使う
  • 汎用的な名前を避ける:ただし、値を一時的に入れ替えるtmpなど、役割が明らかな場合はよい
  • 具体的に表現する:何を表す値なのか、名前だけで分かるようにする
  • 大切な情報を加える:ミリ秒ならstart_msのように、単位や属性を名前に含める
  • スコープに合わせて長さを変える:短い名前は、小さなスコープだけで使う
  • 表記に意味を持たせる:大文字やアンダースコアの使い方を統一する

3. 誤解されない名前
#

  • 上限・下限にはmax_・min_を付ける
  • 両端を含む範囲にはfirst・last、終端を含まない範囲にはbegin・endを使う
  • 真偽値にはis・hasなどを使う

4. 美しさ
#

  • インデントをそろえる
  • 対応する要素は、どこでも同じ順番に並べる
  • 大きなコードの塊は、空行を使って意味のある段落に分ける

5. コメントすべきことを知る
#

コメントしないこと

  • コードを読めばすぐに分かること
  • 分かりにくいコードの説明。コメントを足す前にコードを直す

コメントすること

  • その手法を選んだ理由
  • TODOや既知の問題
  • 定数の値を決めた背景
  • ファイル、クラス、コードブロックの概要

6. コメントは正確で簡潔に
#

  • 「これ」「それ」などの代名詞を避ける
  • コードの意図を、正確かつ簡潔に書く

7. 制御フローを読みやすくする
#

  • 比較では、変化する値を左、安定した値を右に置く
  • if/elseでは、肯定形・単純・目立つ条件を先に扱う
  • 読みにくくなる三項演算子、do/while、gotoは避ける
  • 早期リターンを使ってネストを浅くする

8. 巨大な式を分割する
#

説明変数を使って、巨大な式やコードブロックを意味のある単位に分ける。

9. 変数と読みやすさ
#

  • 複雑な式の分割、意味の明確化、重複の削除に役立たない変数は消す
  • 変数のスコープを小さくする
  • できるだけイミュータブルな変数を使う

10. 無関係の下位問題を抽出する
#

  • プロジェクト固有の処理から、汎用的な処理を分離する
  • ただし、細かい関数が増えすぎても読みにくい。再利用の必要性が見えてから切り出す

11. 一度に1つのことを
#

  • 1つのコードブロックでは、1つのタスクだけを扱う
  • 複数の処理が混ざっている場合は、タスクを列挙して別々の処理に分ける

12. コードに思いを込める
#

複雑な考えも、まず簡単な言葉で説明する。細部を詰め込みすぎると、かえって意図が伝わらない。

コードを明確にする手順は次のとおりです。

  1. コードの動作を、同僚にも伝わる簡単な言葉で説明する
  2. 説明に使ったキーワードやフレーズに注目する
  3. その説明に合わせてコードを書く

13. 短いコードを書く
#

コードが増えるほど、保守や開発は難しくなる。新しいコードを増やさないためには、次の点を意識する。

  • 不要な機能を削除し、過剰な機能を持たせない
  • 最も簡単に問題を解決できる要件を考える
  • APIや標準ライブラリを知り、既存の機能を活用する

14. テストと読みやすさ
#

  • 失敗の原因がすぐ分かるエラーメッセージを書く
  • テストしやすいコードを意識すると、責務が整理された読みやすいコードになる