読みやすいコードは、読みやすい文章である

ブログ

「読みやすさ」に悩んでいませんか?

コードを書いていると、ふと立ち止まって思うことがある。「このコード、半年後の自分が読んで理解できるだろうか?」あるいは、「チームメンバーがこれをレビューするとき、イライラしないだろうか?」
エンジニアなら誰もが一度は感じる悩みだ。特に、レビューで「もっと読みやすくして」と言われても、具体的に何を直せばいいのか分からず、心が折れそうになることもあるだろう。

この記事では、コードの読みやすさを“文章”に例えて考えることで、直感的に理解できる方法を紹介する。文章が読みやすいと感じるときのポイントをコードに置き換えることで、コードレビューが怖くなくなるし、メンタルを削らずに改善できるはずだ。

結論:読みやすいコードは「意図が伝わる文章」と同じ

結論から言うと、読みやすいコードとは、読み手が迷わず意図を理解できるコードである。
そしてそれは、良い文章と同じ条件を満たしている。

  • 一文一意:一つの文に一つの意味 → 一つの関数に一つの責務
  • 適切な段落分け:話題ごとに段落を分ける → 処理を関数やクラスに分割する
  • 無駄な言葉を省く:同じ表現を繰り返さない → 重複コードをなくす(DRY原則)
  • 論理が自然につながる:接続詞が明確 → コードの処理フローが追いやすい

要するに、「コードを文章のように読みやすくする」ことが、可読性を高める最短ルートなのだ。

文章に例えるとよく分かる「読みやすさ」の正体

1. 意味が明確であること

文章では主語と述語が明確だと読みやすい。同じように、コードでは変数名・関数名が明確だと理解しやすい。

// 悪い例
$data = getData();
process($data);

// 良い例
$userList = fetchActiveUsers();
sendWelcomeEmail($userList);

変数名と関数名を見ただけで「何をしているか」が分かる。文章で言えば、「私はリンゴを食べた」とストレートに書くのと同じだ。

2. 構造が整理されていること

長文をそのまま書き連ねると読みづらい。コードも同じで、長い関数は読む気を削ぐ。

// 悪い例:一つの関数が長すぎる
function processOrder($orderId) {
    // 受注データ取得
    // 在庫チェック
    // 支払処理
    // 出荷処理
    // 通知メール送信
}

// 良い例:処理を分割する
function processOrder($orderId) {
    $order = fetchOrder($orderId);
    validateStock($order);
    processPayment($order);
    shipOrder($order);
    notifyCustomer($order);
}

小分けにした関数名が「見出し」の役割を果たし、処理の流れを追いやすくなる。

3. 冗長でないこと

文章で同じことを何度も繰り返すとくどい。同じ処理をコピペするのも同じくらいくどい。

// 悪い例
$user = $db->query("SELECT * FROM users WHERE id = 1")->fetch();
echo htmlspecialchars($user['name']);

$product = $db->query("SELECT * FROM products WHERE id = 5")->fetch();
echo htmlspecialchars($product['name']);

// 良い例:DRYに書く
function fetchById($table, $id) {
    global $db;
    return $db->query("SELECT * FROM {$table} WHERE id = {$id}")->fetch();
}

function e($str) {
    return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}

$user = fetchById('users', 1);
$product = fetchById('products', 5);
echo e($user['name']);
echo e($product['name']);

変更があったとき、共通関数を直せば全体に反映される。文章で言えば、「同じ話を何度も書く代わりに見出しや注釈でまとめる」感覚に近い。

4. 流れが自然であること

読みやすい文章は前後の論理が自然につながっている。コードも、処理の順序が直感的であると読みやすい。

例えば条件分岐では、先にエラーケースを弾いてから正常系を書くとスッキリする。

// 悪い例:ネストが深い
if ($user) {
    if ($user->isActive()) {
        process($user);
    }
}

// 良い例:早期リターン
if (!$user) return;
if (!$user->isActive()) return;

process($user);

深いif文の入れ子は、文章で言えば「カッコだらけの長文」で、頭がこんがらがる原因だ。

5. 読み手を意識していること

文章を書くときに読み手の知識レベルを考えるように、コードでもチームの平均スキルに合わせるべきだ。

抽象化しすぎると「一見かっこいいが、何をしているか分からないコード」になり、チーム全体の生産性が下がる。読みやすさはチーム全員で共有できる基準に落とし込む必要がある。

文章 コード
難しい専門用語を多用する 高度なデザインパターンを多用する
文脈が飛んで読者が迷子になる 依存関係が複雑で追えない
段落がなく詰め込みすぎ 長大な関数・巨大クラス

まとめ:コードも文章も「伝わること」がゴール

読みやすいコードとは、読む人にストレスを与えないコードだ。
それは読みやすい文章と同じで、意図が明確で、構造が整理され、無駄がなく、流れが自然である。

  • 変数名・関数名は意図が伝わるようにつける
  • 関数は短く、責務を分割する
  • 重複コードは共通化する
  • ネストを浅くし、処理の流れを直感的にする
  • チームで「読みやすさの基準」を共有する

明日からできる行動として、まずは自分の書いたコードを声に出して「文章として読めるか」試してみるといい。詰まる箇所があれば、そこが改善ポイントだ。
コードは書くものではなく、読まれるもの——その意識が、可読性を劇的に改善する第一歩になる。

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