SwiftでDuplicateメソッドをログへ出力する

下記のようなケースを想定します。

// ↓この関数を
func duplicatedFunction() {
    // 処理
}

// ↓この関数に置き換えたい
func newFunction() {
    // 処理
}

duplicatedFunctionは様々な個所から参照されているため、一変に置換するのは安全ではありませんし、確認範囲も広がるのでまとまって時間が取れないと対応は困難です。

duplicateとなった処理を見つけ次第変更するという漸進的な対応のほうが現実的です。
duplicatedFunctionがどこから呼び出されているか確認出来るようにして、コードが実行されたものをログに出力されるようにします。

- func duplicatedFunction() {
+ func duplicatedFunction(_ file: String = #file, _ line: Int = #line) {
+     debugPrint("!!!Duplicate!!! \(file):\(line), Please replace to newFunction.")
      // 処理
  }

#file#lineをデフォルト引数で与えることで、どこから呼び出されているかを確認出来るように修正しました。

これで出力されるログを!!!Duplicate!!!でフィルタしておけば何処で呼ばれたのかログから確認出来るようになりますので、ログを確認さえしていれば対応範囲内の処理を修正していけますね!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.