6. I Don't Have Much Time and I Have to Change It - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)
Working Effectively With Legacy Code の 6章 I Don't Have Much Time and I Have to Change It。
「コードを変更しないといけないんだけど時間がないんだよ!」ということはみなさん経験ありそう。
マインドマップから再構成したまとめ
- 基本姿勢は非常にシンプル
- 既存のコードにテストを付加したり、リファクタリングすることは「あきらめる」
- 新しく追加するコードは既存のコードと出来るだけ分離してテストも書く
- 4つの方法
- 方法の仕組みはマインドマップに図に描いたので省略
- Sprout メソッド
- 良い点:新しく追加する部分のテストが書ける。新しいコードが分離されている。
- 悪い点:既存のコードの改善をあきらめていること
- Sprout クラス
- 悪い点:とってつけたような奇妙なクラスができあがる。でも時が経てば見方も変わり改善のきっかけになるからやるべきだよ。
- Wrap メソッド/Wrapクラス
- 良い点:古いコードが一行も大きくならない。新しいコードが分離されている。
- 悪い点:ネーミングが難しい
所感
この2つはどちらも個人的にやったことがある。
このような方法論に名前をつけてきちんと定義する。
さらにメリット・デメリットを明確化していることに価値があると思う。