a > b と b < a どちらが良いコードか説明できますか?

プログラミング

リーダブルコーダーを目指す@HIROCASTERでございませう。

まさか!Amazonに在庫があるようです。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

Dustin Boswell、Trevor Foucher、角 征典

X. It’s what’s happening
From breaking news and entertainment to sports and politics, get the full story with all the live commentary.

「お」が4つあるので、第4刷が既に決定したようです。おめでとうございます。少しでも本書が世の中に行き渡り、日本人が書くコードが良いコードになればと思います。

今回は評判の良いリーダブルコードの何が良いか具体的に書籍から引用して解説したいと思います。

地方の方などは書店で内容を確認してから購入することができないと思いますので、参考にしてください。

7.1 条件式の引数の並び順

以下の2つのコードはどちらが読みやすいだろうか。

if (length >= 10)

または、

if (10 <= length)

 ほとんどのプログラマは最初のほうが読みやすいと言うだろう。それでは、以下の2つならどうだろうか。

while (bytes_received < bytes_expected)

または、

while (bytes_expected > bytes_receved)

 これも最初の方が読みやすい。それはなぜだろう?

スポンサーリンク

左側に「調査対象」右側に「比較対象」

英語の用法と同じ指針として、左側に調査対象である変化する値をおき、右側には比較対象である変化しない値をおくと理解しやすいと本誌には書いてある。

例として

  • もし君が18歳以上ならば

という表現が自然であると説明されている。

これは「君が」に該当する部分が調査対象であり、「18歳以上」というのが比較対象となっているからである。

if (user_age > age_limit) # 「ユーザーの年齢が18歳以上であれば」となる

「18年が君の年齢以下ならば」という表現は不自然すぎる。

if (age_limit < user_age)

というようなことが書かれている。

リーダブルコードのすごいポイントは、こういった理由がハッキリと書かれていることだ。

なんとなく書いていることを意識するだけで良いコードになる

この様に英語の用法に基づく、一定のルールや考えの知識を知っているか、知っていないかで、コードは大きく読みやすくもなり、読みにくくもなる。

if文の変数をどちらが先に書くかなんて、深々と考えたことはなかった。

直感的に書いたコードは用法的に間違っていることもあり、読みにくいこともある。

だが、今回得た小さな知識は今後、何年と書いていくであろうif文に大きな影響をもたらした。

そんな、小さな知識が凝縮されたリーダブルコードを私はオススメする。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

Dustin Boswell、Trevor Foucher、角 征典

参考