良いコードを書けるようになりたい
私は基本的にはソフトウェアはずっと趣味で独学でやってきたのですが、最近GitHubでコードを公開するようになったり、仕事でも少しソフトを書くようになったので、良いコードを書くための基礎を勉強したいなと思い、年末年始に以下の本を読んでみました。
「リーダブルコード」は、たまに上がってくる「プログラマが絶対読むべき〇〇冊の本!」みたいな記事に必ずといって良いほど挙げられている本です。「ベタープログラマ」は、私が本屋でたまたま見かけて買った(ジャケ買いとも言う)、2017年発売の新しい本です。まだAmazonにレビューついていませんが、私はこれはかなりの名著ではないかと確信しております(レビューが星一つ連続だったら私の見る目が無かったということで)。
せっかく2冊読んでみたので、それぞれどういうことが書かれているのか、書かれていないのかということを読み比べしてみました。自分が感じたことは以下です。
共通して書かれていること
- 良いコードの定義
- 良いコードを書くための考え方(スタイル)
リーダブルコードに書かれていること
- 関数や変数の名前の付け方といった、すぐ使える具体的かつ実践的なテクニック
- 具体的な良い例・悪い例
ベタープログラマに書かれていること
- プログラムに対する姿勢(精神的なものから肉体的なものまで)
- よいコードを書くために必要な環境(エディタからバージョン管理システムまで)の重要性
「リーダブルコード」と「ベタープログラマ」を読み比べて感想
2冊を通じて感じたのは、同じことを違う表現で書いている箇所が多かったということです。良いコードの定義は、年月や使う言語が変わっても大きく変わるわけではなく、他の人(あるいは数年後に読み返す自分自身)にとって、理解しやすいコードであるということですね。
「リーダブルコード」に関しては、その名のとおり読みやすいコードの書き方に特化していて、良い例、悪い例の具体例が多く、読んだ次の日に役に立つ内容で流石名著だなと思いました。自分もそこそこ長い間プログラミングしてきたので、その中で無意識にやっていた多くのことを網羅的に書いていてくれているので、復習になりますし、新たな気づきも多くありました。
「ベタープログラマ」に関しては、どちらかというとコードだけでなく、コードを書く人間の方に焦点を当てた本になっていて、コードを書くために必要な健康の維持の仕方(冗談でなく本当に書いてあります)から、人同士のコミュニケーションの重要性まで書かれています。具体例も、もちろん多くあげられていますし、答えを単に書くのでなく、読者に「それじゃああなたはどう考えるか?」という問いかけが多く、良いコードとは何かを考えさせられる内容になっています。哲学的といっても良いかもしれません。
結局どちらがオススメなのかというと、多少なりともプログラムを経験している人であれば両方オススメだと思います(プログラムしてことない初心者が読む本では無いです)。趣味でも仕事でも、プログラムしたことある人ならどちらを読んでも深く頷く箇所や新たな気づきを得られる箇所があると思います。