はじめに
「リーダブルコード読んだことありますか?」 と聞かれれば、多くのプログラマが「YES」と答える(であろう)名著。
「リーダブルコードどれくらい覚えてますか?」 と聞かれれば、自分は「はて?」となる名著。
完全に独断と偏見ですが、一度自分が大切にしたいこと・伝えていきたいことを
まとめてみようと思います。
特に業務の中でレビューアになることが多いので、
レビューアとして大事にしてきたこと、これから大事にしていきたいことをまとめてみたいと思います。
レビューで大事にしたいポイントベスト16
No. | ポイント | 部/章 | 選定理由 |
---|---|---|---|
1 | コードは他の人が最短時間で理解できるように書かなければいけない | 1部1章 理解しやすいコード | 理解しやすいコードの冒頭、鍵となる考えの一文ですが、良いコードの根幹となる考えだと思います |
2 | 明確な単語を選ぶ | 1部2章 名前に情報を詰め込む | 非常に大事ですが、実はシステムや業務に対する深い理解が問われていると思います、ここで明確な単語をチョイスできているかがそのままシステムや業務への理解度を表す気がします |
3 | tmpやretvalなどの汎用的な名前を避ける | 1部2章 名前に情報を詰め込む | 迷うとやりがちですが、本当に避けられないのかあるいはこの場面では妥当なのかレビューではよく見るポイントにしています |
4 | 最善の名前とは、誤解されない名前である | 1部3章 誤解されない名前 | 読んで誤解しないか、明確な名前をつけ間違えていないかに気をつけてみています |
5 | 限界値を含めるときは min と max を使う | 1部3章 誤解されない名前 | min/maxに限らないですが、よく使う事象の対比があると意味を推測しやすくなります。似た単語も多いので矛盾が生じていないか気を付ける箇所でもあります |
6 | コメントのためのコメントは書かない | 1部5章 コメントすべきことを知る | コメントは書くことで将来(近くも遠くも)の助けになりますが、単純にコストにもなります。ルールや義務感、前例に習うコメントではないか、書かない方が良いかも考えさせられる一言です |
7 | 入出力のコーナーケースに実例を使う | 1部6章 コメントは正確で簡潔に | これは実際入出力がある関数、特に切り捨て・切り上げを複雑に行っている場合などはすごく助かります..テストコードも一つの解決法ですが、テストコードができない理由がある場合はコメントにあるだけでもとても助かります.. |
8 | コードの意図を書く | 1部6章 コメントは正確で簡潔に | No.6 の反対かなと個人的には思いますが、意図を示してくれたコメントは積極的に残しておけば良いと思います |
9 | 関数から早く返す | 2部7章 制御フローを読みやすくする | 本の中では短く記載されていますが、現実でも真っ先に考えて実践するものだと思います、Swiftだとguardもありますが、言語全般で意識するものだと思います |
10 | ネストを浅くする | 2部7章 制御フローを読みやすくする | 関数から早く返すと通じますが、ネストを浅くすることがそもそも意識することです |
11 | 説明変数 | 2部8章 巨大な式を分割する | 有名なプログラマである中嶋聡さんのメルマガかブログを読んでいたときにこの話があり、非常に納得したのですが、一度変数に出すことでわかりやすさが上がるので意識するようにしています。反対にループの中の変数などは気を付けるようにしていますが.. |
12 | ド・モルガンの法則を使う | 2部8章 巨大な式を分割する | ちょっと違いますが、「否定の否定は使うな」と言われたことを思い出します。表現でどちらか一方の概念で読めるようにする。頭を使う回数を減らす条件式にできないか気をつけています |
13 | 巨大な文を分割する | 2部8章 巨大な式を分割する | 処理をまとめられないか、意味のある一つにできないかをレビューの中では見るようにしています |
14 | 変数のスコープを縮める | 2部9章 変数と読みやすさ | 状態を持つ変数が増えるのは該当機能を理解することの難易度を上げます、もちろん状態を消すことに力を入れてもしょうがないですが、消せるものは消す方が良いです。。大体不具合の温床になるので。。 |
15 | プロジェクト固有のコードから汎用コードを分離するということ | 3部10章 無関係の下位問題を抽出する | まとめで太文字になっている部分ですが、「安定している場所と安定しない場所を見極める」とよく言われました。業務から遠くてシステムに近い部分は安定する場所に該当します。そこはコードを分離できます。 |
16 | コードを小さく保つ | 3部13章 短いコードを書く | 13.3 のタイトルそのままですが、短いコードになるようコードを整えられないか、実例も記載されているので実践するようにしています |
まとめ
中身はだいぶグダグダになりましたが、少なくとも自分自身が今何を大事に思っていて、
またどこを体験し切れていないのか(多分、上がってるのが少ないのがそう..)を整理することにはつながりました。
名著なので自分でもまた振り返ることがあると思いますが、次はもっと綺麗に整理したいです..