書評・感想:リーダブルコード

どのような本なのか

タイトル通りと言えばそれまでですが.「いかに読みやすいプログラムを書くか」をテーマに,そのためのテクニックが書かれている本です.
オライリー本には珍しく,表紙に動物が登場しません.

どのような人に読んでほしいか

プログラムを書く全人類.ただし,プログラムの基礎的な概念(変数,if,for,関数,classあたり)は分かっていて,多少の実装経験がある方が,書いてあることが身に沁みる気がします.

また,プログラムを独学で学んできた人ほど読むべきだと思います.(書き方が我流になりがちなので)

おすすめポイント

普通教えてくれないことが知れる

一般的なプログラミングの授業(もしくはネット上の教材)では,ある言語についての文法や,メソッドの紹介は行われます.しかし,変数名の付け方,コメントの付け方,アルゴリズムが追いやすいループ処理の書き方などについては,あまり説明してくれないように思います.しかし本書では,これらについて非常に丁寧に説明されています.

また,例えば"get"で始まる関数はほぼO(1)程度の非常に軽い関数である,というような,世界中のプログラマが暗黙の了解として知っているようなことも学べます.このようなことは,教えてもらわないと気づかないと思います.もちろん,本書に書いてあることが絶対とは限らないので,組織独自のコード規約があれば従うべきです.

読みやすい文章

本書の中では,とにかく「読みやすいコード=他人が最短時間で理解できるコード」という視点を常に持ちながら,テクニックが紹介されています.「他人」というのは,自分以外の人という意味に加えて,数ヶ月後の自分でもあることも強調されています.各テクニックにはほぼ全てサンプルコードが添えられていて,非常に直感的に理解できます.もちろん,それらのサンプルコードは(悪い例として提示されているものを除けば)リーダブルなので,大きく立ち止まることは無く読み進められます.また,各章には「まとめ」が設けられており,時間がなければ「まとめ」を読むだけでも十分活用できると思います.

また,日本語も非常に読みやすいです.砕けすぎているわけでもなく,だからと言って専門書並みの硬い口調な訳でもないです.前書きには"先輩から優しくアドバイスを受けている感じ"という表現がありますが,まさにその通りだと思います.

読みにくいかもしれない点

サンプルコードがC++, python, javascript, Javaの4言語で書かれている点です.終盤を除けば,どのサンプルコードも簡単なコードなので,全然読めないことはないです.(終盤のコードも,実際の開発に比べれば短くて,簡単に読めるコードです.)でもこれは,僕がC++pythonjavascriptを触ったことがあるからかもしれません.コードが読めないと問題提起が分かりにくいのは確かなので,サンプルコードが読めるかどうかは,本書を理解できるかどうかの重要な判断基準になると思います.

ですがこのことは,紹介されているテクニックが特定の言語を対象としておらず,一般的な「プログラミング」という行いに対して適用できることも示しています.

おわりに

リーダブルコードの書評と感想でした.

終盤の解説でも書かれているように,本書を読んだ瞬間から,重要なテクニックを使いこなせるようにはなりません.自分で悪い部分があることに気づき,テクニックを適用して読みやすいコードを書くという訓練から始まるのだと思います.

自分のプログラムの書き方をもう一度見つめ直す大きなきっかけになると思いますので,強くお勧めして,終わりにさせていただきます.