関数宣言の変更

動機

関数宣言はソフトウェアシステムにおける継ぎ目となる。多くの部分が継ぎ目に依存し、良い継ぎ目があればシステムに新たな部品を追加するのは簡単。悪い継ぎ目は常に問題の発生源になる。
継ぎ目の要素で最も重要なのは関数名です。もし間違った名前の関数を見たら、少しでも名前がわかり次第、断固として変更していかなければなりません。
関数の名前を改善していくための良い方法は、関数の目的をコメントとして書くこと。そのコメントを名前に変更する。

手順

変更内容を吟味して、宣言と呼び出しとを一度で簡単に変更できるかを検討する。もしできるなら簡易な手順を実行する。 そうでなければ移行手順を選択して呼び出し側より漸進的に変更していく。 この手順が大きな意味を持つのは、呼び出し箇所が多い場合や(公開されたAPIのように)呼び出し箇所が手の届かないところにある場合、関数がポリモーフィックなメソッドである場合、関数宣言に複雑な変更を加える場合です。

簡易な手順

  • パラメータを削除する場合、それが関数内部で参照されていないことを確認する。
  • 関数宣言を望ましいものに変更する。
  • 古い関数宣言へのすべての参照を探し、新しいものに変更する。
  • テスト 名前の変更とパラメータの追加の両方がある場合には、それぞれ別のステップで実施する。

移行手順

  • 必要なら関数の本体をリファクタリングして、移行の抽出のステップを実施しやすくしておく。
  • 関数本体に関数の抽出を施して、新たな関数を作る。
    新たな関数の名前を古いものと同じにする予定なら、新たな関数に判別しやすい名前を一時的に付けておく。
  • 抽出した関数が追加のパラメータを必要とする場合、簡易な手順により追加を行う。
  • 古い関数に「関数のインライン化」を施す。
  • 一時的な名前を使った場合、「関数宣言の変更」を再び実施し、元の名前に戻す。
  • テスト