こんにちは、いっとくです。
久しぶりに骨太ながらめちゃくちゃ良い本を読みました。
伝説的プログラマであるボブおじさんこと、Robert C. Martinによる名著です!
ボブおじさんと言えば「アジャイルソフトウェア開発の奥義」や「Clean Architecture」あたりの本の方が有名な気がしますが、こちらも例に漏れずとんでもなくいい内容です。というか英語版だとこのクリーンコードが一番有名っぽいですね。
タイトルの通りですが、きれいなコードを書くための書籍です。オライリーのリーダブルコードと似たような趣旨の本ですね。
ただし、情報量はクリーンコードの方が圧倒的に多いです。その分難しい部分もありますが…
Amazonのレビューで「リーダブルコードの最強版」というのがめちゃくちゃ的を射た一言だと思います。
ということでこの本がどんな本なのかというのを軽く紹介していこうと思います!
クリーンコードとリーダブルコードの内容の違い
どちらもコードをきれいに書く方法論なのですが、リーダブルコードは命名やインデント、コメントなどなど、すぐに改善することができて直感的に理解できるような要素が多いです。またイラストもコミカルで表現もわかりやすいので、エンジニアになってすぐのタイミングで読んでも得るものが多いと思います。
対してクリーンコードではそういったわかりやすい書き方にプラスして、オブジェクト指向を使ってきれいなコードを書くためのテクニック、テストコードの可読性を上げる方法、引数の使い方、エラーハンドリング、並行処理、などなど本当に深い部分まで踏み込んでいます。
また、サンプルコードの量が豊富で、特に驚いたのは書籍の中で実際にあるOSSのソースコードをピックアップして、それをリファクタリングしていくという作業があるところ。
サンプルって本によってはシンプルすぎたり簡単すぎたりして、実務のコードでどうしたらええんや…みたいになることがあるのですが、本書のコードはかなり実務向きで、実際読んだあとで自分の書くコードが変わりました。
ということで、エンジニアになりたてのタイミングではリーダブルコードで学習するのがオススメで、ある程度オブジェクト指向についての理解が深まったタイミングではクリーンコードを使って学習するのが良いと思います!
クリーンコードを読んで変わったこと
クリーンコードの良いところは読んだら自分のコードが変わることだと思います。
命名もそうですが、個人的に一番変わったのは、一つ一つのメソッドを小さく分割するようになったところです。
元々メソッドは小さくする意識で書いていましたが、本書を読んで全然足りなかったなぁと反省し、だいぶメソッドを小さく分割する人間になれました。ありがとう、ボブおじさん。
特に、テストコードは一つのメソッドに色々書いていくものだと勝手に思い込んでいたので、テストコードの可読性を上げるためにメソッドを分割していくのを知った時は、ゲームの裏技を発見したかのような気持ちになりました!
あとは細かいポイントですが、引数の個数やどんな値を渡すかみたいなシンプルなところも、あまり言語化して考えたことがなかったところだったので、コードを書く意識が変わりますし、長い名前の変数やメソッドを作ることへの躊躇いとかも軽減できると思います。
またコードを読んでいるときも、もっとここ改善できそうだなというのが、以前よりも見えてくるようになりました。
そんなわけでめちゃくちゃためになったと同時に、ためになりすぎてこの本読んだ人とだけ仕事したいと思えるくらいにパワフルな内容でした。
ということで、どうやってコードを改善していけば良いのかはぜひ本書を読んで確かめてみてください!
正直1周したくらいだと、消化不良なので繰り返し読んで落とし込んでいきたい。
あとはクリーンアーキテクチャと合わせて読むとより理解が深まるそうなので、そっちも読んでいきたいです。前回読んだ時は未熟すぎて全然わからなかったのでね。
それではみなさんもきれいなコードを書いて、日々のお仕事を平和にしていきましょう。
おしまい!
コメント