2. Working with Feedback - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)

Working Effectively With Legacy Code の 2章 Working with Feedback。
ついに「依存関係を切り離す=(Break Dependencies)」の具体例が。
「Edit & Pray」にならないように気をつけよう。

マインドマップから再構成したまとめ

フィードバックを生かす

  • ソフトウェアには2つの変更方法がある。「Edit & Pray」と「Cover & Modify」の2つ。
  • 「Edit & Pray」は良くある方法。
    • 変更する前に注意深く調べて、注意深く変更する
    • 変更が有効かテストをする
    • 既存の動きを壊していないか*適当に*確認する
    • 既存の動きを壊していることに不安を覚えつつ祈る
  • 「Cover & Modify」
    • 変更によるバグなどが外側に漏れ出さないように「カバー」をかけて変更する
    • カバーとはユニット・テストだ
      • ユニットテストによる即座のフィードバックが時間を節約し、いらいらを少なくする
      • デイリーやウィークリーのテストではフィードバックが遅すぎる!
  • 大きなテストとユニットテストの違い
    • 大きなテストは長い実行時間。ユニットテストは0.1秒以下にしよう。
    • 大きなテストはエラーの箇所の特定が難しい。ユニットテストは最小単位だからすぐ分かるよ。
    • 大きなテストはテストを書くのに依存関係を理解しないといけないよ。メンテナンスも大変。
  • こんなのはユニットテストじゃない
  • フィードバックを生かしたソフトウェアの変更方法
    1. 変更場所を特定する
    2. テストのポイントを特定する
    3. 「依存関係を切り離す」
    4. テストを書く
    5. 変更する・リファクタリングする


より細かい方法は先の章で語られるとのこと。