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

最近気がついたことがあるんだけど、自分はプログラムのコードを書くのに、自分なりの拘りを一人より持っている気がする。
前職ではプログラマーが一人だったこともあり、プログラムのコードに関しては、他人のコードを直接触る機会はなかったんだけど、今の職場になって何人かのプログラマーと共同作業を行うようになって、他人のコードについて色々感じている自分がいる。

  • なんでインデントを揃えないんだ?
  • なんでデバッグコードが残っているんだ?(コメントで残している)
  • なんで変数名や関数名に一貫性がないんだ?

そんなものコーディング規約がないことがそもそも悪いんだろうけどね。
まあ、技術的に自分が優れていると思うことは全く無いんだけども、より良いコードを書きたいと思う欲が、一人より強いのかもしれないなと漠然と思いながら日々過ごしていた。

そんな時に見つけたこのが本書。
評判も良さそうなので、早速注文した。
そして気がついたら、届いた次の日に一気に読んでしまっていた。

いやあ、本当に素晴らしい!!
そして、自分の価値観と似ていることが書かれている本を読むというのは、なんと気持ちの良いことなんだろう。

読んでみてまず思ったことは、読みやすいコードは良いコードという価値観を共有出来る人じゃないと、この本はあまり魅力的じゃないかもしれないってことだ。
短いコードが一番良いという人もいるだろうし、コメントを一切書かないほうがいという人だっているんだと思う。 けど、僕の様に、

誰でも簡単にやっていることがわかるコード。

が、何よりも良いコードだなと思う僕の様な人間には、まさにピッタリの本じゃないかな。

人にもよるかもしれないが、読みやすいコードの書き方というのをちゃんと習う機会というのがあまりない。
少なくとも、僕にはなかった。
オープンソースのコードを読んで、「あ、これは読みやすいな」と思うコードの書き方を真似るとかしていた。
実際そういう人って多い気がする。
そんな人にとって、一つの指標となり教科書になり得るのが、この本だ。

読み前に想像していた変数名の付け方とかループイテレータの名前の付け方といった、表面的なテクニックは3分の1程度だったりする。 それも結構為になることが多いんだけども、どういった単位で関数を構成していったほうが良いのか等といたより内面的な話がとても参考になった。

読んでいくうちに、結局のところ文章構成力なのかもなあって思った。
そう考えると、文系プログラマーって読みやすいコードを書ける素質があるのかもしれないね!
まあ、少なくとも引け目を感じることは無い気がする(別に元々持つ必要ないんだけども)。
つまり、読みやすいコードを書けるプログラマーだからといって、凄腕のハッカーじゃないと思うし、逆も然りなんだろうね。

個人的には凡人の僕の様な文系プログラマーこそ、本書を読んだほうが良いと思う。
凄いスキルを持っていない僕のようなプログラマーは、共同作業を行うことが多い気がするし、そんな時に伝えられるコードを書けるというのは、とても役に立つはずだから。
まあ、それと同時に読みにくいコードを読む力も付けないといけないんだけどね。

結局読みやすいコードって、どれだけ読む人の気持になって書けるかだなと。
また、どれだけ自分の中で整理出来ているのかなと。
行き着くところは基本中の基本なのかもしれないけど、そんなことを気づかせてくれる本書の存在意義は大きいと思う。
少なくとも、今の僕にとっては輝いて見えたよ。

これからは、僕も今まで以上に読みやすいコードを書けるように努力したいと思う。
そして、自分のコードを見て、一人でも多くの人が「このコード読みやすいな、真似しよう」って思ってくれたら素晴らしいなあ。
また、未来の自分にも「うわ、何やっているのか、わかんね」って思われないように、読みやすい伝わるコードを少しでも増やしていきたい。

なんか前向きな感想が素直に出てくる本って良書の最大の条件だな。
最近良い本に出会えている気がして、ちょっと嬉しい。
とにかく定期的に読み直したい本がまた1冊増えたわ。
ということで良書でした。