その52017.02.21みなさん、こんにちは。ダンジョンに潜り、マモノゴハンを食べてみたいプログラマの水瀧です。いえば、最近は飯テロ漫画が多くなってきてますね。業界的に流行っているのでしょうか?この記事を書いてる間もよだれが出てきます・・・笑。読者さん的にはね・・・つまんないんじゃないかなぁ・・・なんて思う次第で、この本については今回で決着をつけますよ!(実はちょっと水瀧が飽きてきちゃったのは秘密です。←おい)そんなこんなで今回は満員の特急列車(10両編成)で行きます!各章でちょっぴりシンプルにさせてもらっています。第7章では主にクラス設計についての内容が述べられています。クラスの持つべき責任がどこなのか?ということを考えるための一つの意見がここで知れると思います。「意見」というのはこれが正解ではないと思うからです。一つのクラスが責任を抱えすぎているだとか、はたまた、責任が分散しすぎているだとかそういった場合に適用できるリファクタリングも紹介されています。クラス設計のリファクタリングで悩むときは、この章を見返してみてもいいかもしれないですね。第8章ではデータ操作に関するリファクタリングの紹介があります。自己カプセル化フィールドの作成や、値から参照への変更、オブジェクトによる配列の置き換えなど、どのようなデータをどのように持つべきかを考えるコツが得られるのではないかなと思います。いったデータに関するリファクタリングは比較的適用しやすいような印象を受けました。簡単に適用できる分、かえって見づらいコードになってしまう。なんてことにはならないように気をつけたいところです。データといえば、ビバ!定数!滅びろ!マジックナンバー!と水瀧は考えております。読んでいけばわかる数字は幻です。頭の中ですぐに消えて、もう一度見返す羽目になりますよ・・・。第9章では条件記述の単純化についてです。条件記述はコードが成長するにつれ、どうしても複雑になってしまいがちな部分です。気づけば、条件式がミルフィーユに・・・。自分でもちゃんと読み易いと感じるような条件式を書くコツに気づけるようになると思います。第10章では関数呼び出しの単純化について。関数の呼び出し側での見易さにつながるようなリファクタリングが紹介されています。確かに多すぎる引数はエディタを横にスクロールしなくちゃいけなかったり、ここでも美味しくないミルフィーユができてしまってたりしますからね・・・。(まあ、ライブラリの約束などでどうしても、というときはあると思います。)なんかこの関数呼び出し、ピンとこないな。継承の取り扱い第11章では継承構造に関するリファクタリングが紹介されています。私自身、継承はなぜか苦手意識があります・・・。コードの追いかけで行ったり来たりするからですかね・・・?それくらい複雑になり易いのではないかなと思っています。そんなときはフィールドを昇格・降格させたり、クラス抽出したり、と適切な構造に治すにつれ、おそらく読み易い継承構造ができてくるのだと思います。うーん、私も継承の取り扱いには慣れたいものです・・・。今までよりも大きなかたまりでリファクタリングをするのか、また、なぜ大きなリファクタリングが必要なのか?などの意見を知ることができると思います。いえ、私が感じた分だと、小さなリファクタリングを重ねて行くこと自体が大きなリファクタリングになるのではないかなぁ何て考えています。時間的に短いリファクタリングも継続していればトータルの時間は長くなるので、あまり大きな差がないような気がしています。第13章ではリファクタリングにまつわる現実性についての話や、リファクタリングをしたがらない理由などの話が上がっていました。やりたくない理由の部分であげられている4つの理由が、これまた納得できちゃう理由で、新人の私でさえも確かにな、と思ってしまいました。「だけどやらなきゃいけない」の精神でネガティブな発想は覆していきたいですね。リファクタリングツール第14章ではリファクタリングに使うツールについての紹介がありました。ツールを使うことで手作業で行っていたリファクタリングが楽にはなります。ツールが全て正しいリファクタリングをしてくれるとは限らないので、あくまで人間が行うリファクタリングをサポートしてくれるような、それくらいのレベルのものだという認識でいいと思います。部品から全体へ最後の章ではリファクタリングができるようになったけど、ここで終わりではないということを語っています。一通りリファクタリングができるようにはなった。誰かと組んでリファクタリングしたり、潮時に気づけるようになったりしたいと、そう思わせるような内容でした。まとめこの本の全体的な内容としては、リファクタリングのバイブルになりそうな本だと感じました。リファクタリングやってないな。なんか基本的な部分が怪しい。ん?こういう時ってどうやるんだっけ?なんて時に読み返すと良いのかなと思います。必要な時に何度でも見る。そんな読み方をする本かもしれないですね。超特急ではありましたが、ようやくこの本の書評が書けました!長らくお付き合いいただき、本当にありがとうございました!次回がいつになるか、どんな内容になるかは今の時点ではわかりませんが、また次回があればお会いできるかと思います。それでは今回はここまで。採用情報クラウドクリエイティブスタジオではエンジニアの方を絶賛募集中です。