読み込んでいます…
読み込んでいます…
Dustin Boswell
いまここ 第15章 · 全15章 · メモ8件
コードの読みやすさを、名前、コメント、制御フロー、変数、テストなどの具体例から解きほぐす。書き手の意図を素早く正確に伝え、読み手の認知負荷を減らすための実践をまとめた一冊。
15/15章 読了 (100%)
AI 要約
私はこの本を、コードを短くする本ではなく、次に読む人の頭の負担を減らす本として読み直した。名前は最小のコメントであり、自分に通じるかより、別の意味に誤読されないかで選ぶ。条件分岐では早期リターンでネストを浅くし、巨大な式には途中の意味を表す名前を置く。変数のスコープや宣言位置も、読み手が覚えておく量で決めたい。コメントは処理の説明を繰り返さず、なぜその方法を選び、なぜ別案を採らなかったかを残す。そしてテストコードも同じ基準で読まれる。テストの準備が長すぎるなら、対象の設計が複雑なのかもしれない。読みやすさを好みではなく、誤解と記憶負荷を減らす判断としてチームで揃えたい。
目次
章メモ
第2章 名前に情報を詰め込む
tmp や retval は、その変数について何も語っていない。名前は一番短いコメントだと思えば、情報を詰める価値がある。ただし長ければいいわけではなく、読む人が何を知りたいかで決まる。
第3章 誤解されない名前
filter という名前は「残す」のか「除く」のか分からない。名前の良し悪しは、誤読される余地があるかどうかで測る。自分が分かるかではなく、他人が別の意味に取れるか。
第7章 制御フローを読みやすくする
条件式は、変化する側を左に、比較対象を右に置くと読みやすい。ネストは早期リターンで潰す。読む人の頭の中のスタックを浅く保つ、という考え方が腑に落ちた。
第8章 巨大な式を分割する
長い式は、途中に名前をつけた変数を置くだけで別物のように読める。パフォーマンスを気にして1行に詰める癖があったが、読めないコードの方がよほど高くつく。
第9章 変数と読みやすさ
変数のスコープが広いほど、読み手は長く覚えていなければならない。使う場所の近くで宣言する。書く側の都合ではなく、読む側の記憶容量の話だと考えると納得できる。
第9章 説明変数
条件式そのものに名前をつけると、コメントなしで意図が見える。年齢を直接比較するより、その条件が何を意味するかを変数名にした方が、なぜその境界なのかが残る。
第5章 コメントすべきこと
コードを読めば分かることはコメントに書かない。書くべきは、なぜそうしたか、なぜ別の方法を選ばなかったか。この本を読んでから、コメントの量は減って質は上がった。
第14章 テストと読みやすさ
テストコードも読まれる。何を確かめているかが1行目で分かるべきで、セットアップが長いテストは、対象の設計が複雑すぎるサイン。テストは設計へのフィードバックでもある。
AIとの会話
あなた
読みやすい名前を選ぶとき、チームで判断を揃えるコツはありますか?
AI
この本の第3章のメモが、そのまま基準になります。 「filter という名前は「残す」のか「除く」のか分からない。名前の良し悪しは、誤読される余地があるかどうかで測る。自分が分かるかではなく、他人が別の意味に取れるか。」 レビューでこの一点だけを見るようにすると、好みの議論になりません。もう一つ、『システム開発と「具体と抽象」』第9章のメモが効きます。 「チーム内で同じ言葉が違う粒度で使われていると、議事録は揃っているのに実装がズレる。用語の粒度を合わせる作業は、地味だが一番効く。」 名前が指す範囲の粒度まで揃えて、はじめて命名規約が機能しそうです。