読みやすいソースコード

 この記事を読むよりリーダブルコードを読んだ方がよほど良いと思います。Amazonで売っている電子版は見つかりませんでした。リーダブルコードはQiitaの記事でよく引用されたり技術書ランキング | テック・ブック・ランク”、5万部売れたり(技術書にしては多いです)でよく読まれています。
 O’Reilly Japan – リーダブルコード
 コードの記述は想定外の動作を起こさず、正しく動作する記述であることが最も重要視され、次いで理解しやすさ、時々実行速度が優先されます。実行速度が三番手なのは雑なコードでも要求に対して十分高速な時が少なからずあるからです。理解しやすいコードはそのコードを読む、未来の自分、共同開発者、ユーザの助けになります。未来の自分と書くと語弊がありますが、この未来というのはわりと短期です。一月もすれば読まない部分のコードの記憶は怪しくなります。
 理解しやすいコードに必要な条件に誤解が起きないというものがあります。誤解が起きない書き方というのは、接続詞である演算子や括弧を少なくして多重コードを避ける、変数名や関数名の意味を一意に決まる限定的な言葉にする、などの書き方です。
 読みにくい多重コードは三項演算子、関数呼び出しが特にそうです。

hoge = a?b?c:d:e
hoge = a?b?c:d?e:f:g?h:i
hoge = a(b(c,d(e()),f(g(h(),i))))

 二重だけでもちょっと躊躇います。下二つはもう大惨事です。
 変数名の意味を一意にすることの効果は、コードの理解に必要な文章量を少なくする効果でもあります。良い命名がされたコードはコードの一部を読むのみでプログラムが分かります。悪い命名というのは例えば、次のような命名です。

results = Database.all_objects.filter("year <= 2011") 

この results には何が含まれているだろうか?

  • 「year <= 2011」のオブジェクト
  • 「year <= 2011」ではないオブジェクト
  • Dustin Boswell (著), Trevor Foucher (著), 須藤 功平 (解説), 角 征典 (翻訳). リーダブルコード (P.30).
     このような場合、言葉の意味を考えるなり調べるなりしてより限定的な言葉を選ぶことで解決します。調べる時は類語や色々な人のコード中に頻出する名前を調べるといいです。この例の場合はfilterの代わりにselectやexcludeが推奨されます。

    >株式会社シーポイントラボ

    株式会社シーポイントラボ

    TEL:053-543-9889
    営業時間:9:00~18:00(月〜金)
    住所:〒432-8003
       静岡県浜松市中央区和地山3-1-7
       浜松イノベーションキューブ 315
    ※ご来社の際はインターホンで「316」をお呼びください

    CTR IMG