DDD / Choosing Refactoring Targets


Choosing Refactoring Targets (P.437)

担当は本間(id:hiratara)です。

要約

リファクタリングされてない巨大なシステムに出会った場合はどこから手を付ければいいだろう? XPコミュニティでは次のような答えになりがちだ。

  1. どっからでもいい。どうせ全部やるんだから。
  2. 問題となるとこからやればいい。自分の仕事を終わらせるために必要なとこをリファクタリングするつもり。

筆者はどちらにも反対で、前者はトッププログラマ達だけで構成されてるプロジェクトじゃないと現実的じゃない。後者は根本問題を無視してハジッコの問題だけを対応しがちになって、結局はコードはどんどんリファクタリングしにくくなる。

では、全部リファクタリングが出来なくて、「痛みドリブン」もできないならどうする?

  1. 「痛みドリブン」の中で、根本にCORE DOMAINやCOREへの関連を含まないかをよくチェックして、それがあるようなら歯を食いしばってそこから直しなさい
  2. リファクタリングに自由に時間を使えるようなら、まずはCORE DOMAINをCORE からの分離が改善されるようリファクタリングし、その後でサブドメインがGENERICになるよう浄化しなさい

これが一番見返りの大きいリファクタリングの仕方だ。

担当者のつぶやき

みんなの突っ込み


まとめ (議事録)