未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

リーダブルコードを読んだ

良いコードを書くためにはどのようにしたらよいのだろうか。

そのヒントが載っている。200頁ちょっとの本だからすぐに読める。読めて知識として得たとしても、それですぐに良いコードを書けるようになるとは限らない。日々コードを書く時にこのヒントを実践しなければいけない。それはもちろん簡単なことではない。

知っていることと出来ることには大きな差がある。

職業としてのプログラマならば、知っているだけではだめで出来るようにならないといけない。

それは必ずしも容易なことではない。日々の鍛錬が必要なのは言うまでもない。

本書を職場の同僚と読んで、ここで書かれていることを話し合ってみよう。同意できる部分、よく分からない部分、実践することが簡単な部分、難しい部分などがいろいろ見つかると思う。

読書会のいいところは、読んだメンバーに共通の理解ができることだ。例えば「名前に情報を詰め込む」ということはどういうことか、本書の定義に従った理解がメンバーに共有される。知識として共有できるので、コードレビューした時に、この変数名はちょっと情報が詰め込まれていないなー、という感想に対して、メンバー内に一定の理解が共有される。

第一部表面的な改善、第二部ループとロジック、第三部コードの再構成、第四部選抜テーマ、付録あわせて読みたい、解説からなっている。それぞれの章には、さらに各論がつまっている。

例えば第四部14章には「テストと読みやすさ」が議論されている。レガシーコードというのはテストがないコードのことをいうが、保守しやすいテストについても記してあるのは非常に良いと思った。

レガシーコードはテストがないのでリファクタリング難しい。保守性の低いテストしかないと、どんどんコードが重くなって、リファクタリングできなくなってしまう。鶏と卵の関係だがテストを保守しやすくしておくことによってリファクタリングも容易にするという戦略である。

本書は、一度ざっと目を通して、時々読み返してみるというタイプのものだと思う。できればチーム全員で一度読んでみて議論をするのがいいのではないかと思った。

本書ではファイル名の付け方、バグの報告の仕方、ソースコード管理システムでのブランチ名の付け方などはふれていないけど、それを求めるのは行き過ぎ。だけど、どっかで明示的に記す必要はあるよなーと思った。

付録にはあわせて読みたい良書のリストがあるので、未読だったら読むことをお勧めする。