22. I Need To Change Monster Method And I Can't Write Tests For It - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)
Working Effectively With Legacy Codeの 22章 I Need To Change Monster Method And I Can't Write Tests For It。
マインドマップから再構成したまとめ
モンスターメソッドを変更したいんだけどテスト書けないよ。
- モンスターメソッドの種類
- Bulleted Method 箇条書きのようなメソッド
- Snarled Method インデントや条件分岐が複雑なメソッド
- ツールを使ってリファクタリング
- ツールでメソッドを分割してみたが位置が悪いかも?
- 気にせず分割してあとで直そう
- 変更は1度に1つ
- 安全な変更と安全かどうか分からない変更を分離できるよ
- ツールでメソッドを分割してみたが位置が悪いかも?
- マニュアルでのリファクタリング
- 良くあるミス
- 引数を忘れる。コンパイラが教えてくれるよ。
- override して隠してしまう
- 代入を見逃す
- ミス防ぐためには?
- Sensing Variablesの導入。状態を教えてくれる変数を追加しよう。それらを利用してテストを書く。全てのリファクタリングが終わったら消そう。
- スタート地点。確信のあるところ。小さいところ。理解しているところ。Coupling Count の少ないものから。(特に0から)
- Gleaning Method
- メソッドにメインとサブの役割があり、サブの機能が壊れたらすぐに目で見て分かる場合
- メインのテストを書く
- サブを別の場所に分ける。
- メインが壊れたらテストで分かる
- サブが壊れても分かる。
- 戦略
- 良くあるミス
所感
- 特になし。
リンク
一人読書会 - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)
Working Effectively With Legacy Code
posted with amazlet at 08.10.24
Michael C. Feathers
Prentice Hall
売り上げランキング: 4738
Prentice Hall
売り上げランキング: 4738
おすすめ度の平均:
設計が悪いシステムの保守でお悩みの方へ