「レガシーコード改善ガイド」読んだ
自分用。
これ読んだ。
Amazon.co.jp: レガシーコード改善ガイド (Object Oriented SELECTION): マイケル・C・フェザーズ, ウルシステムズ株式会社, 平澤 章, 越智 典子, 稲葉 信之, 田村 友彦, 小堀 真義: 本
< http://www.amazon.co.jp/dp/4798116831 >
続きを読む
べちか
@bechica
メソッドのパラメータが原因でクラス間の依存関係が切り分けられないことが結構あるみたいだ。でパラメータはたいてい、簡単には操作できない。 出来るときはインタフェースを抽出しよう。
2011-03-29 19:56:18
べちか
@bechica
インタフェースの抽出が出来ないときにはパラメータの適合をしよう。つまり、情報取得の処理を分離して、モックを噛ませやすいようにする。 これをやるとシグネチャの維持ができない、とある。
2011-03-29 19:59:46
べちか
@bechica
パラメータの適合:メソッドが使用するインタフェース新規作成 インスタフェースを実装する本番用クラス作成 同じく偽装クラス作成 メソッドに偽装オブジェクトを渡して実行できるテストを作成 新しいパラメータを使えるようメソッドを変更 テストを実行
2011-03-29 20:32:41
べちか
@bechica
ふーん・・・ この依存関係を排除する方法の 手順一覧は便利っぽいな。 これだけ使うのに買ってもいいな。 逆にこれ書くと本読む意味なくなるな。
2011-03-29 20:33:44
べちか
@bechica
変更が正しいこと、デグレってないことを確認するためにテストが必要。 テストを書くには、依存関係を排除することが必要。 クラスは責務に基づいて切り分けられていたほうが依存関係を排除しやすい。 で、とりあえずはよさそう。
2011-03-29 20:35:40