リーダブルコード
読みやすく、変更しやすいコードを書くための考え方。命名、関数分割、条件分岐、コメントの扱いを整理する。
概要
リーダブルコードは、動くだけでなく、後から読んで理解しやすいコードを書くための考え方です。
業務開発では、コードを書いた本人だけが読むわけではありません。 数か月後の自分、同じチームの開発者、保守担当者が読むことになります。 そのため、短く書くことよりも、誤解されにくく、変更しやすい形にすることが重要です。
特徴
リーダブルコードで重要になる観点は、主に次の通りです。
- 変数名、関数名、クラス名で意図を伝える
- 1つの関数に複数の責務を詰め込みすぎない
- 条件分岐を読みやすい順序にする
- ネストを深くしすぎない
- コメントは「何をしているか」より「なぜそうしたか」を補足する
- 特別な処理や例外的な処理を目立たせる
命名
名前は、コードを読む人にとって最初の説明になります。
例えば、data や result だけでは、何のデータなのか分かりにくいです。
一方で、approvedPayment や customerSearchResult のように書くと、値の意味が伝わりやすくなります。
ただし、長ければ良いわけではありません。 重要なのは、そのスコープで必要な情報が過不足なく入っていることです。
関数分割
関数は、処理のまとまりに名前をつけるための単位でもあります。
1つの関数が、入力チェック、DB更新、通知、ログ出力、画面表示用データ作成までまとめて行うと、読む側は処理の目的を追いにくくなります。
関数を分けるときは、単に行数で分けるのではなく、責務で分けます。
入力を検証する
状態を変更する
結果を作る
外部へ通知する
このように役割を分けると、変更の影響範囲も見えやすくなります。
コメント
コメントは、コードを補足するために使います。
コードを読めば分かることをそのまま書くより、なぜその実装にしたのか、なぜ例外的な処理が必要なのかを書く方が役に立ちます。
悪い例: ユーザーIDを取得する
良い例: 退会済みユーザーも履歴照会では表示対象にするため、削除フラグを条件に含めない
コメントは、コードで表現しきれない判断の背景を書く場所です。
設計との関係
リーダブルコードは、細かい書き方の話に見えますが、設計ともつながっています。
責務が分かれていない設計では、読みやすいコードを書くのが難しくなります。 逆に、命名や関数分割を丁寧にすると、設計の歪みも見つけやすくなります。
関連する概念
- 命名
- 責務分離
- 関数分割
- リファクタリング
- 保守性
- 可読性
- レイヤードアーキテクチャ
参考文献
- Dustin Boswell, Trevor Foucher『リーダブルコード』
更新履歴
- 初版作成