📝

【読書感想】読みやすいコードのガイドライン

2023/10/05に公開

はじめに

「読みやすいコードのガイドライン」を読んだ

なぜこの本を選んだのか

同僚が推薦してくれた
ノンデザイナーズ・デザインブックと同様、同僚が推薦してくれました。

前職はコーディングルールがガチガチに固まっており、「読みやすさ」よりは「既存のコードを踏襲して、いかに変更箇所を少なく抑えるか」が重視されていました。なので、正直「読みやすさは」さして意識する必要がなかったのです。
現職でコードを書く際に、「『読みやすい』コードとは・・・🤔」となったとき、職場の同僚がオススメしてくれたのが本書でした。(2回目)

おすすめポイント

コードを書く人・読む人全てにおすすめです。特に新人・新卒の方におすすめできると思います。「可読性って具体的にこういうことを指すんだな」ということがわかりやすく解説されているので。また、命名の迷宮に迷い込みがちな方もぜひ・・・

感想

以下、各章についての感想です

第1章:可読性の高いコードを書くために

この章では「単純」「意図が明確」「独立性が高い」「構造化されている」の4つの指標をもとに可読性について解説されています。どれもコードレビューで指摘されがちな点ばかりで、耳が痛い(?)です。特に「意図が明確」については命名の迷宮にしばしば迷い込むので、その時点で意図が明確でなくなっていますね。責務の分離なども曖昧にしがちなので気を付けます。

第2章:命名

この章では、文字通り命名について解説されています。私は命名で指摘されることが多く、この章があるのは本当にありがたかったです。前職では「明確な命名ルールがあり、かつ、仕様書の名前が命名のベースになっていた」ので、名前から推測できる変数名は多くなかったのです。コメントありきで読むのが前提になっていたので、今思えばかなり冗長だったと思います。本書はこの命名について、かなり詳細に深掘りしてくれていて、自分の言語化できていなかった命名についての「なぜ?」がかなり解消しました。

第3章:コメント

この章ではコメントについての解説です。「命名」の章で前述した通り、以前はコメントありきでコードを読む環境でした。そのため、コード上にはコメントがびっしり書いていたので、現職のプロダクト環境を見たときはコメントの少なさに驚きました。本書では、適切にコメントを書くことで「コードを理解しやすくする」「ミスをしやすい点で注意を促す」「リファクタリングを促進できる」の恩恵が得られると書かれています。逆に、 前述の恩恵が受けられない・意味のないコードは書く必要がない と書かれており、それらを理解した上でプロダクト環境を見直すと納得できました。適切な箇所で、適切な内容のコメントを心がけます。

第4章:状態

この章では状態設計と関数設計について解説されています。特に、状態遷移の設計は様々な遷移パターンが図を用いて解説されていて、それらに対するテクニックが随所で紹介されています。状態設計は結構な頻度で不要な設計を組んでしまいがちなので、定期的に見返してできるだけ単純な設計ができるよう精進したいと思います。

第5章:関数

この章では関数の責任と流れを明確にすることの重要性について解説されています。関数の責任を明確にするために「単一責任の原則」を用いることとその例、関数の流れを明確化するための手法の紹介が詳細に書かれています。関数の設計が、名前の決めやすさやドキュメントの要約の書きやすさに関わってくることも触れられており、「なるほど〜〜!!!!」となりました。最近まさに実務で「責務が明確な状態で設計しておくとドキュメントを残しやすい」を実感したので「なるほど〜〜!!!!」となりました(2回目)

第6章:依存関係

この章では依存関係をどう管理するべきかについて解説されています。依存の種類と、種類ごとの解説も詳細に書かれており、一言で「依存」と表してもこんなに種類があったのか・・・と驚きました。また、「依存の強さ」「方向」「重複」「明示性」の4つの観点で解説されており、こういった依存は避けるべきというのも具体的なコードを交えて解説されていてかなり学びが深かったです。依存関係については実務でも躓くことが度々あり、本章は理解不足な部分も多々あるので、繰り返し読んで理解を深めていきたいです。

第7章:コードレビュー

この章ではコードレビュー時における、レビューイとレビューアの双方の注意点について解説されています。本章ではGitHub上でレビューを行うことを想定した形式で書かれているので、実務と近く読みやすかったです。特に、レビューイのアンチパターンの1つに挙げられている「1つのプルリクエストにまとめる」は自身のプルリクエストを出した後に、あれは分割できたな、と思うことがちょこちょこあるので気を付けます。この章も定期的に見返して振り返っていこうと思います。

まとめ

めちゃくちゃタメになる本でした。実務で取り入れるべき内容が盛りだくさんで、一気に実践!は厳しいですが、何度も読み返して落とし込んでいきます!!(特に命名とか命名とか命名)

Discussion