『Java言語で学ぶリファクタリング入門』の感想

はいどーも人生をリファクタリングしていきたい無職です。
本日は『Java言語で学ぶリファクタリング入門』の感想記事を書いていきたいと思いますよ。

めちゃくちゃ面白い

実は現在『独習PHP』を読んでいるのですが(7割くらい読み終わってます)、結構前に注文していた『Java言語で学ぶリファクタリング入門』が来たので「一章だけ読んでみるか~」と、かる~い気持ちで読み始めました。
が、これが止まらない止まらない(笑)
あんまりにも面白いので、二時間くらいぶっ通しで読み続けました。
結局『独習PHP』を読むのをいったん止め、こっちに集中することになりましたよ。

GoFのデザインパターンは知っておいた方がいい

本書では随所でGoFのデザインパターンについて触れられています。
全く知らないままでは読むのが辛いと思うので、一通りは軽く勉強してからがよいのではないかなと思いました。
ですが完璧に理解している必要はないので、入門書か入門サイトあたりを一回通読していれば十分だと思います。

わりと当たり前のことも書かれている

第一章は「シンボリック定数によるマジックナンバーの置き換え」という仰々しいタイトルなのですが、これは要は「マジックナンバーには人が読んでわかる名前をつけましょうね」という話です。
『リーダブルコード』あたりを読んだことがあれば「そんなの当たり前だよ」と思うレベルのことですが、そういった基本的なことから「なぜそうしたほうがよいのか?」を丁寧に解説してくれています。
また、改善するための手順も「こんなに丁寧に書く必要ある!?」と思うくらい順序立てられています(これを本書は「ステップバイステップ」と言っています)。
リファクタリングに多少でも興味がある方は、初心者から中級者あたりまでは読んで損はないんじゃないかなーと思いました。

デザインパターンについて

先ほども述べた通り、本書はデザインパターンの話が随所に出てきます。
これはリファクタリングの技術として一部のデザインパターンが発展したからなのでしょうかね?
例えばテンプレートメソッドパターンですが、「手順は同じで内容は異なるメソッド」が複数のサブクラスに散らばっている場合、それをまとめるために登場したのかなあ、なんて思いましたよ。
まあ本書は歴史について語るものではないので、その辺の話は完全に僕の憶測ですが。

巻末の付録も面白い

巻末には本書で扱えきれなかった(あるいは章を取って扱うほどでもない)リファクタリング方法がまとめて紹介されています(正確には本書で扱ったものも含みますが)。
一通り目を通した感じ、僕が今まで組んできたコードの方向性は間違っていないのだなと確信できました。
これからも綺麗なコードを書くことを心がけようと思いますよ(まあ修正段階でコードが汚くなることがほとんどだと思いますが)。

終わりに

本書は実は『Java言語で学ぶデザインパターン入門』の著者さんが書いたものです。
過去に絶賛した方の書籍なので楽しみでしたが、やっぱり今回も面白かったですw
いわゆるMVCを実現するためのリファクタリングとしてObserverパターンがチョロっと出てくるのですが、この部分が一番難しかったと思います。
実際、『Java言語で学ぶデザインパターン入門』やらUniRxやらでObserverパターンについて勉強していなければ多分この章については理解できなかったでしょう。

というわけで『Java言語で学ぶデザインパターン入門』もオススメですよ!
ほなそんな感じでまた。

フォローする