はじめに
こんにちは、SHOJIです。
本記事はプログラミング初心者向け書籍として超有名な「リーダブルコード」のレビューもとい感想文です。
www.oreilly.co.jp
僕はこの本がとても好きで定期的に本棚から引っ張り出しては読んでいます。
初心者向けとして紹介されることが多いですが、業務経験10年を超えるような方でも得るものがある本だと思うので、タイトルに「中堅も」と入れました。
リーダブルコードってどんな本?
「リーダブルコード ~より良いコードを書くためのシンプルで実践的なテクニック~」というタイトルが示すとおり、良いコードを書くためのシンプルかつ実践的なテクニックが載っています。
メソッド名や変数名といった名付けの仕方から始まり、読みやすくするための美しいコードのまとめ方、コメントの付け方、コードの分割の仕方等、すぐに使えてコードを書く上で重要なテクニックが詰まっています。
説明にはそれぞれサンプルコードがついているので、具体的にイメージしながら読み進めることができます。
僕は専門書を読んでも「なんとなく言いたいことは分かるけどイマイチ具体化できない」ということが多いので、例を提示して説明してくれるのは非常に助かりました。あと、文章が硬くないのもありがたいです……笑
目次と感想
目次
1章 理解しやすいコード
2章 名前に情報を詰め込む
3章 誤解されない名前
4章 美しさ
5章 コメントすべきことを知る
6章 コメントは正確で簡潔に
7章 制御フローを読みやすくする
8章 巨大な式を分割する
9章 変数と読みやすさ
10章 無関係の下位問題を抽出する
11章 一度に1つのことを
12章 コードに思いを込める
13章 短いコードを書く
14章 テストと読みやすさ
15章 「分/時間カウンタ」を設計・実装する
1章は導入、2章&3章は命名、4章はクラス・関数のキレイなまとめ方、5章&6章はコメント、7章〜9章は読みやすい処理の書き方、10章からは複雑な処理を読みやすくするテクニック、という感じです。
章のタイトルから分かるように話の本筋はコードをキレイに書くことなので、扱っているプログラミング言語に関わらずタメになる内容になっています(とはいえ、オブジェクト指向言語を一つも触ったことがないと読みにくい部分があると思います)。
個人的には「3章 誤解されない名前」が気に入ってます。特にfilter()という関数名の曖昧さが指摘されているところ、読めばなるほどと納得できる内容ですが、僕としてはfilter()の時点でも十分に解像度の高い単語だと思うのでまだ考えが足りないなと反省しました。ただ、改善していこうと思う一方、英語ネイティブでないとここに書いてあるクオリティの名付けをしていくのは難しいかなという思いもあります。
あとは「5章 コメントすべきことを知る」の中の「ひどい名前はコメントをつけずに名前を変える」の部分、プログラマなら誰しも一度は見たことあるようなアンチパターンが取り上げられてて面白いです。そもそも、5章自体があるあるネタかってくらい既視感のあるアンチパターンだらけなので、どこを読んでも非常に面白いです。
最後に
本書はこういう方にオススメです。
独学でプログラミングを勉強している方
ソースレビューで書き方の指摘を多く受けている方
自分で書いたコードに読みづらさを感じる方
後輩や部下のコーディング指導に悩んでいる方