nekoTheShadow’s diary

IT業界の片隅でひっそり生きるシステムエンジニアです(´・ω・`)

結城浩『Java言語で学ぶリファクタリング入門』を読んだ。

Java言語で学ぶリファクタリング入門

Java言語で学ぶリファクタリング入門

タイトル通りなのですが、結城浩Java言語で学ぶリファクタリング入門』(ソフトバンク クリエイティブ)を読みました。もっとも「読んだ」といっても、単に字面に目を通しただけではなく、掲載されているサンプルコードを「写経」しています。なお「写経」結果は以下のレポジトリにアップロードしていますが、ただ単純にサンプルコードを単純に書き写してはいないこと、すなわちJava10の機能を利用したり、ユニットテストを実施したりと、自分なりのアレンジがかなり入っていることに注意(?)してください(´・ω・`)

github.com

ここ最近はレガシーシステムの保守にかかわっているのですが、この手の保守作業のスタンスとして多いのが「動いているものには手を入れない」。ただその方針のせいで、ソースコードは極上のスパゲッティに仕上がっており、解読作業で1日がつぶれるなんてこともしばしば(そしてそういう箇所に限ってたいしたことをしていなかったりする)。本書を読んだのは、そういう「循環的複雑度が高いコード」(←お上品な言い回し)を戦うすべを身に着けたいというのがきっかけでした。逆に言うと、こういう本を読む必要がないと感じている人は相当に恵まれた職場・現場にいるので、是非とも大事にしてください(´・ω・`)