«前の日記(2012-07-11(Wed)) 最新 次の日記(2012-07-14(Sat))» 編集

[email protected]



2012-07-12(Thu) [長年日記]

_ コードを書くすべての人にオススメしたい一冊──『リーダブルコード』レビュー

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

訳者である角さんから献本いただきました。どうもありがとうございます。*1

コードを書いている人であれば、誰でも「優れた」コードを書きたいと思っているはず。

しかし、そのためにどうすればいいかが分からない。コードをたくさん読む? 言語をたくさん書けるようにする? アルゴリズムを学ぶ? もちろん、それらもとても大事なことだと思う。*2

本書が教えてくれる「優れた」コードを書くための手段は、とてもシンプルだ。それは「読みやすい」コードを書くこと。「読みやすい」コードは、「理解しやすい」コードであり、ひいては「優れた」コードに繋がる──とても分かりやすい主張だ!

分かりやすいのは主張だけではない。とても読みやすく、理解しやすい。教科書的に上段に構えるのではなく、口語体のちょっとしたアドバイスという文体も、とっつきやすい。この読みやすさの裏には、訳者である角さんの努力と手練の技が隠されているのだろう。

とっつきやすいが、本書の内容はとても濃い。

変数や関数、クラスの名前の選び方、コードの美しさ、コメントの書き方についての「第I部 表面上の改善」からはじまり、制御フローの書き方、式の分割方法、変数の扱い「第II部 ループとロジックの単純化」、リファクリングを「下位問題」、「一度にひとつのこと」、「短いコード」というアプローチから分かりやすく教えてくれる「第III部 コードの再構築」、そして、テストと具体的な設計と実装を扱った「第IV部 選抜テーマ」という深いテーマで構成されている。

これだけ広いテーマを扱いながらも、230ページちょっとというページ数も嬉しいところだ。どんなに素晴しい内容でも、読むのが大変だと、読み切る前に挫折してしまう。本書であれば、集中すれば、数時間で読了できるのではないかと思う。さっと全体を読んで、机に置いておいて、必要な時にまた、その部分を再読するという読み方もいいだろう。

また、初学者には『CODE COMPLETE』や『リファクタリング』といった重量級の本の前に、本書を読んで準備をするという読み方もいいかもしれない。

ちなみに、邦訳版のボーナストラックとして収められた、クリアコードの須藤功平さんの解説も「自然に読みやすいコードを書くためのステップ」を教えてくれる、とてもいい内容なので必読。

読みながら、はっとさせられることが多い本書だったのだが、最後に「はっ」の中でも印象に残ったいくつかを書いておきたい。

  • 包含/排他的範囲には begin と end を使う(start と end を使ってた!)
  • コメントには「自分の考え」を記録する
  • 関数からは早く return する(これは好きな方法なので嬉しくなった)
  • 関数の分割には「無関係の下位問題を積極的に見つけて抽出する」

コードを書くすべての人にオススメしたい一冊だ。

2012.07.12追記

Amazonだと品切れになってる。売れているんだなー。

2012.07.14追記

twitterで知ったけれど、クリアコードの須藤功平さんの解説はブログに掲載されていたので、読んでない人はぜひ。

リーダブルコードの解説

Tags: 書評

*1 技術書を献本いただくのは初めてだったので、とても嬉しかったです。

*2 私は「できている」とはとてもいえない。