理解しやすいコード
情報
著者:ダスティン・ボズウェル/トレバー・フォシェ
訳者:角征典
発行:2012年6月22日
書評:リーダブルコード 書評
解読「第1章:理解しやすいコード」
本著は全体を通して、優れたコードを書いていく理論をまとめている。本著の言葉を借りるならば「コードをたくさん調査してみたら、読みやすさの基準となるものにたどり着くことができた」その答えを知ることができるのだ。
さて、そんな答えを知る前の前座として、「優れたコード」というものは何かという問題について、「理解しやすいコード」という明確な解を明示しているのが第1章である。
鍵となる考え
コードは理解しやすくなければいけない。
この考えが、全体を通しての根幹にある。この考えについて、「「完結」と「安心」はどちらが大切なことなんだろう?」というように読者に問いかける形でまとめられていく。このような語りかけるような口語文で書かれている点は、本著の大きな特徴であろう。とてもとっつきやすい。
『鍵となる考え』はもう一つ明示されている。
鍵となる考え
コードは他の人が最短時間で理解できるように書かなければいけない。
上記の『鍵となる考え』は『読みやすさの基本定理』という言葉で言い換えられる(覚えておこう)。そして「理解しやすいコード」というものを、より実装する上で意識しやすい形に落とし込まれていく。
この『鍵となる考え』で重要になるワードが "他の人" と "理解できる" の二つだと思う。
まず "他の人" というワードについて、下記のように深掘りされている。
「他の人」というのは、自分のコードに見覚えのない6ヶ月後の「君自身」かもしれない。君のプロジェクトに途中から誰かが参加しないとも言い切れない。「使い捨てのコード」が他のプロジェクトに再利用される可能性だってある。
もう既に現場で働いている方ならば、すんなりと理解できるのではないだろうか。
開発現場の大半が、新規開発ではなく既存改修である(特に新人の場合はそうだろう)。改修するにあたって、既存コードを読み取ることが求められる。そこで読みにくいコードを読む羽目になった際に味わう地獄は、できれば誰にも経験して欲しくないものだ。
自分が書いたコードというものは、他の人から読まれるということは避けて通れない。その誰かは、依頼主だったり上司だったり同僚だったり、数ヶ月後の自分だったりする。
このことは頭の片隅に置いておくべきだ。
次に "理解できる" というワードについて、下記のように記載されている。
「コードを理解する」というのは、変更を加えたりバグを見つけたりできるという意味だ。
なるほど。逆説的に考えると「分かりにくいコード」というのは下記のようなコードということだ。
- 変更を加えにくい
- バグを見つけにくい
ただ上記の条件を満たした理解しやすいコードを書くことで、効率やテストのしやすさといった観点が無視されるのでは無意味ではないか? という疑問が筆者から提示される。
たしかに。理解しやすいコードを書いたせいで、テストがとても大変になってしまったり、メモリを大量に消費するプログラムができてしまっては意味がない。しかし、筆者が言うには、「理解しやすいコード」=「効率的かつテストがしやすい」という等式は成立するのだという。
その具体例については、本著を通して理解できるように構成されている。
第1章を改めて読み砕いてみて思う。本著は本当に名著だな……と。
『読みやすさの基本定理』といものについて理論が分かったところで、大事なのは「どうすれば書けるのか」という実技の面である。それらについては、第2章以降に記載されていくので、ここでは割愛する。
第1章をまとめると、下記の通りだ。
- 自分も含めた開発に関わった者全員が、コードを見た時に、変更すべき箇所が分かり、バグを見つけやすいコードが優れたコードである。
ざっくりと書いているが、実際には「具体的なコード」等を記載することでより理解が進むように工夫されている。是非とも本著を買うことをオススメしたい。