kagamihogeの日記

kagamihogeの日記です。

Clean Code アジャイルソフトウェア達人の技

読みやすく、バグのないコードとはどう書けばいいのか。この分野の名著としてはCODE COMPLETE 第2版 上が上げられるが、本書はより現代の事情に即した形で書かれている点が優れている。サンプルとして取り上げる言語はJava、対象となるシステムの分野はソースコードに継続的に手が入れられるもの、に焦点を絞っている。ただ、書いてある内容は普遍的なものなので、ハードウェアの性能を極限まで活かすためゴリゴリにイジったコードを書かなければならない、とかを除けば、有用な内容だと思われる。

俺がこの本を読んで衝撃というか感慨深かったのは、ソースコードを機械が読むことよりも人間が読むことのほうが重視される世の中になってきている、という点だった。もちろん、コードは何らかの実行環境に乗せて動いて初めて価値を持つ、ことはこれからも変わらないでしょう。しかし、いつしかプログラマコンパイラやランタイムに最適化されたコードを書くことよりも、人間が読んだり理解することに最適化されたコードを書くことに比重が置かれつつあるようになった。なぜそのような時代になったのか、なぜ可能になったのか、は幾らでも要素は上げられようが、今はそういう風潮になってきた、ということが俺には感慨深い。

本書の素晴らしいところは、人間はどういうコードを読みやすいか、そうしたコードはどのような価値をもたらすのか、を体系的にまとめている点にある。大昔から可読性の重要性は説かれてはいたけれど、この本ほどの網羅性を持つものは中々存在しなかった。

原理・原則の力強さもともかく、個々のテクニックはJavaのコードを伴う具体的なものであり、明日から使えるのでハウツー本としても優れている。Javaオブジェクト指向プログラミングをやるには、このようにクラスやメソッドを使うべきだ、という記述も盛り込まれているのが素晴らしい。本書は、同著者によるアジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技の事実上の続編だと言われる。このことは、オブジェクト指向プログラミングと読みやすいコードというのは強い相関を示している。本書が、ある意味でオブジェクト指向プログラミングの実践集の側面を持つのは自然なことなのだろう。

Clean Code アジャイルソフトウェア達人の技

Clean Code アジャイルソフトウェア達人の技