6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リーダブルコード、読むだけで“わかってる風”卒業できた話

Last updated at Posted at 2025-08-26

はじめに

お疲れ様です。

新卒エンジニアです。

最近「動いてるけど読みづらいコード」を何度も書いてしまって、レビューで止まることが増えました。

そんなときに先輩から言われたのが、

😼 「リーダブルコード、今読むと効くよ(意訳)

学生のときに軽く読んでたけど、「ふーん」で終わってたあの本ですが、

久々に真面目に読んでみたら、今の自分に効きすぎたのでわかりやすく、一部抜粋してまとめます。

結論:コードは「動く」基準ではなく、「読まれる」基準で書く

リーダブルコードが繰り返し伝えてるのはこれです。

「コードは人間のために書くもの」

業務でコードを書くというのは、

「他人が保守・レビュー・改修する前提」で組む必要がある、ということ。

この意識、学生の時にはなかったものでした。

実際に刺さったポイント3選

1. 名前で9割決まっちゃう

× 悪い例

$a = 20;
$b = getUserAge($user);
if ($a < $b) {
    echo "OK";
}

◎ 良い例

$minimumAge = 20;
$userCurrentAge = getUserAge($user);
if ($userCurrentAge >= $minimumAge) {
    echo "OK";
}

マジで当たり前ですが、「何をしてるのか」が一目でわかる名前にするだけで、読み手の理解速度が段違いに上がります。

ただ、「何をしているのか」が一目でわかる名前をつけるのがまた難しいです。

2. 使おう早期リターン(+ 循環的複雑度)

× ネスト地獄

(読み手の集中力が死ぬ)
(なんならレビューを通らない)

if ($user !== null) {
    if ($user->isAdmin()) {
        if ($user->hasPermission('edit')) {
            // 処理
        }
    }
}

◎ 早期リターンでスッキリさせる

if ($user === null) return;
if (!$user->isAdmin()) return;
if (!$user->hasPermission('edit')) return;

// 処理

ネストが深くなると 循環的複雑度(Cyclomatic Complexity) が上がります。

レビューが通りません。この複雑度に何度も苦しめられてます。

tips : 循環的複雑度とは?

細かい計算方法は複雑なのですが、ざっくり以下の様に算出できます。

複雑度 = 分岐の数 + 1

例えば以下のコード↓↓↓

if ($a > 0) {
    if ($b > 0) {
        return true;
    }
}
return false;

これは if が2つ → 複雑度 = 2 + 1 = 3

複雑度が高いコードは:

  • 多くのテストケースが必要になる
  • バグの温床と化す
  • 何より読みにくい

図解:ネスト vs 早期リターン

// ネスト
┌─ if A
│  └─ if B
│     └─ if C
│        └─ 処理

// 早期リターン
if !A return
if !B return
if !C return
処理

圧倒的に早期リターンの方が見やすい!!

3. コメントは「なぜ」を書く

× 意味のないコメント

// ユーザー情報を取得
$user = getUserById($id);

→ コード見たらわかるやん

◎ 良いコメント

// キャッシュが信用できないときはDBから再取得する
$user = getUserById($id);

→ 「何でこれやってるの?」がここみるだけでわかる。

コメントは コードを書いた人間の思考プロセス を書く場所です。

単なる処理の説明は不要!コードを見たらわかるからね〜

まとめ:リーダブルコードとは「思いやりの心」

最初に言われた「コードは人間のために書くもの」という言葉、読んでみてかじりくらいは理解できたと思います。

◎ 名前で伝える
◎ ネストを減らす(複雑度を下げる)
◎ コメントでは意図を補足する

これらを意識することで
“初見でスラスラ読めるコード”良いコードができあがります。

おわりに

コードは「動けばいい」じゃない。
「伝わるかどうか」= クオリティの差です。

心を込めて、”良い”コードを書いていきましょう。


参考:
『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック』
著:Dustin Boswell, Trevor Foucher
出版社:オライリー・ジャパン

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?