リーダブルコード
2024年9月15日読了
Credit
Dustin Boswell, Trevor Foucher. (2011). The Art of Readable Code. O’Reilly Media, Inc. 角征典訳. (2012). リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック. オライリー・ジャパン.
Summary
コードを読みやすくするためのテクニックを収録した本。
第一部で文章としてのコード、第二部と第三部でプログラムのコードとしてのコード、第四部でテストのコードのリーダブル化テクニックを解説している。また、第四部最後にすべての知識を使ってあるクラスをリーダブル化する。
Note
- 3章
- 「以上」「以下」なら
first
とlast
- 「以上」「未満」なら
begin
とend
- get系の処理は であれ
- 「以上」「以下」なら
- 4章
- 類似コードは列を揃える
- フォーマッタがあるならそれに従うかな……
- 逆に、C/C++のような言語なら揃えていいかも
- 類似コードは列を揃える
- 5章
- 「なぜわざわざこのコードにしたのか」をコメントする
- 定数に「なぜその値なのか」をコメントする
- 陥りやすい罠をコメントする
- そのとき感じたことをコメントする
- 7章
- 次はコードを追いにくい要素:
- スレッド
- シグナル/割込みハンドラ
- 例外
- 関数ポインタと無名関数
- 仮想メソッド
- 次はコードを追いにくい要素:
- 8章
- 条件式が長くなったときは反対の条件を考えてみる
- 「範囲が重なっているか」を「範囲が重なっていないか」
- 条件式が長くなったときは反対の条件を考えてみる
- 9章
- とりわけ可読性に貢献していない変数は消す
- とにかくスコープを狭める
if (PaymentInfo* info = database.ReadPaymentInfo())
というC++の改善例が出てきたが……これをいわゆるif let文として捉えていいものか……
- 10章
- Divide and conquer!!! ただしやりすぎに注意
- 固有のコードから汎用のコードへ
- 12章
- 簡単な言葉で説明する
- ラバーダッキング
- 何がしたいコードなのかを説明してそれに従ってコーディングする
- コーディングしてから何をしているコードなのか説明するのは良くない
- 13章
- コードを小さくする
- 要件の十分条件を調べる
- ライブラリを使う
- 14章
- 疎結合!
- テストステートメントは簡潔に
- どうせ同対象のテストはにかよるので関数に分けて使い回す
Impression
本を読むのが苦手な私でもサクッと読める本。 つまり、この本自体もまた読みやすさが考えられている。 わかりやすい構成、わかりやすい例題、わかりやすい説明。 洗練されている。
終わり方も綺麗。 本文は参考・推薦書籍の紹介で終わるが、その後に最後の章として「解説」が続く。 その最後は次の文で締めくくられている。
「自分が書いたコードってどのくらい覚えているんですか?」
「ほとんど覚えていないですよ。」
「直すときどうするんですか? わからなくなってるじゃないですか。」
「忘れても見たら簡単にわかるように書いておくんですよ。」
内容はほぼほとんど既知で実践済み。 正直、ある程度実力をつけたエンジニアが学ぶことはない。 しかし、この本を読むことは無益ではない。 ある種答え合わせになるから。 一人でも正しい道を歩めるが、一人ではその道が正しいかわからないものだ。
■