リーダブルコード読んだ

 さっくり読み終わった。

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

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

 

  タイトルの通り「読みやすいコード書こうぜ!」って本。読みやすさを題材にしてるので、著者も訳者も本書の読みやすさをかなり大事にして書いたようだ。おかげでかなり読みやすかった。

 「読みやすさ」を本書では次のように定義している。

コードは他の人が最短時間で理解できるように書かなれければいけない。 

  これは最もな話で、プログラムをするとき、コードを書く時間よりコードを読む時間が圧倒的に長い。であればコードを読む時間を短縮するのが開発効率を上げる近道になる。この定義にそって、命名規則リファクタリングの話を展開している。

 リファクタリングについてはマーチン・ファウラーの本が有名だけど、あっちの本はリファクタリングをパターンとして定義している本で、リーダブルコードと扱っているジャンルは一緒だ。でも、読みやすさという点で、まずはリーダブルコード、その後でマーチン・ファウラーのリファクタリング本を読むのが良さそうだ。

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 94人 クリック: 3,091回
  • この商品を含むブログ (307件) を見る
 

  コーディングの表現には2つの面があると思う。ひとつはモデリング等のロジカルな面。もう一つは人にやさしい、読みやすいコードの表現かどうかということだ。理想的なコーディングはこの両面を意識することでできるものだと考えている。

 コードの読みやすさというものは、結局のところ人が感じることであり、どうしたらより分かりやすくなるか、誤解を招かない表現になるかというように、より良い表現を探すなかで確立されるものだと思う。コードリーディングのありがたいところは、そういう試行錯誤の過程を描いてくれている点だ。どう考えてどう解決するべきかを示してくれている。手法よりもその裏にある考え方を本書ほど具体的に提示してくれている本はそんなに無いと思う。

 読みやすさという点で、一つ思い出した。言葉の危うさについてだ。2/10 - はきだめで書いているが、人はそれぞれの個人言語を持っている。少し引用してみる。(「外山滋比古の文による」という例題から引用)

 われわれは、ものを読むときには、テクストの文字、文章を、あるがままに見、読んでいると考えている。

 実際は、しかし、決してそうではない。いかなる読者にも必ずなにがしかの先入主がある。知識、思想、習慣、信念など比較的恒常的なものもあれば、一時的気分、好悪といったものもあろう。一人一人違う個性は、ことばをかえれば、先入主の塊のようなものであるから、先入主の全くない人は人間ではなくなる。読者にはそういう広義の先入主の編みが幾重にもはりめぐらされていて、それぞれ掩蔽を起こす。だから、人がものを読めば、決してあるがままに読めないし、また、読めもしない。

 この先入主というのを言い換えたのが個人言語だ。人はその人特有の言語体系を持っている。それは引用にあるように文章を読むときにも、自分の考えを文にするときにもフィルターのように関わって、作用してくるわけだ。

 これはコーディングでも同じだと思う。書くときに個人言語を通して表現され、それが他人の個人言語によって理解される。だからこそ、より明確に、より読みやすくなるよう、クラスやメソッド等を命名しなければならない。

 

 話が少し変な方向に行ってしまった。閑話休題

 

 リーダブルコードで扱っている話題は、プログラマなら必ず身に付けるべき内容だと思う。ある程度コーディングしてきている人であればみんな納得する内容だし、新規性もあまりないと思う。でも、この内容を自分で人に説明して共有できるかというと、中々難しい。一緒にコードを読みつつ、少しずつコードに対する考え方をすりあわせて行くしか無い。そういう場合にこの本を渡して読ませることで考え方を共有できるというのはありがたい。