新年度に入って1ヶ月半たった今、プログラマな新人さんや初めて後輩ができた先輩方にお薦めしたい一冊

久しぶりの投稿。かなり間が空いてしまった。

5月も半ばを過ぎ、今年プログラマになった新人さんも少しずつコードを書く量が増えてきたんじゃないだろうか?

日々、わからないところはググったり聞いたりしながら、夜遅くまで必死にコードを書いて退社。
そして翌朝、出社してエディタを開き再びコードを書こうとすると、ふと手が止まる。

「あれ、ここの変数、何の値が入ってるんだ?」
「この関数って、どういう処理のために作ったんだっけ?」
「この辺りループとか条件分岐がごちゃごちゃでネスト深くて読みづらい。。。」

そう、自分が昨日書いたコードのはずなのに読みづらい。
それどころか、全くわからない。

...とまぁそこまではなくても、きっと数日前に書いた箇所がすぐにパッと理解できなかったり、コードレビューで指摘されまくって凹んだりしている方は、少なからずいるのではないかと思う。

逆に新しく後輩が入ってきてコードレビューをしているのだけれど、なんとなくダメな匂いの漂うコードに対して的確にアドバイスできないとか、そもそもまだキレイなコードが書けている自信がない(僕だ)とか、そんな方もいるかもしれない。

もし、そういった方の中でまだ読んだことがないなら是非とも薦めたい一冊がある。

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

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

そう、「リーダブルコード」だ。
まぁ、今更感は否めない、おそらくそのくらいには有名な書籍。
それでもこの先ずっとお薦めしたい、そんな本なのだ。超良書。

例えば、

  • 良い変数名や関数名が思い浮かばず、結局適当につけてしまう(そして後でわからなくなる)
  • ループを何重にもネストしたり、バカでかいif-else節を作ってしまう(そして後でわからなくなる)
  • コードを見たままの当たり前のコメントしか書いてない(そして後でわからなくなる)
  • 一つのバカでかい関数の中でいろんな処理をしている(そして後でわからなくなる)

みたいなことが、少しでも思い当たる人はきっと手にとって損はないはず。

仮に、思い当たる節がなかったとしても、 後半のテストコードの話や、実例を挙げて設計・実装していく辺りの話なんかは、 きっとタメになるのではないかと思う。

最後に、リーダブルコードの解説にはこんなことが書いてある。

本書の内容を身につけて、自然に読みやすいコードを書けるようになるための3つのステップを紹介しよう。
・実際にやる
・当たり前にする
・コードで伝える

どんなに優れた名著を読んでも、"実際にやらなければ"身につかない。
というわけで僕も読みっぱなしはやめて、明日から実践することにしよう、と思う。

ちなみに、リーダブルコード以外の本だとこれもお薦め。

CODE COMPLETE 第2版 上

CODE COMPLETE 第2版 上

CODE COMPLETE 第2版 下

CODE COMPLETE 第2版 下

あちこちでお薦めされている名著。
上下巻で高いけどめっちゃ良い。すごくイイ。高いけど。
この記事書いた時点では、Kindle版だと上巻が結構安くなってる。