宣言の順序の変更はリファクタリングですか

1 九月 2004

宣言の順序(つまりJavaプログラム内のメソッドやフィールド)を変更することはリファクタリングでしょうか。

最新のプログラミング言語では、機能を宣言する順序はプログラムをまったく変更しません。テキストファイル内の2つのメソッドを入れ替えても、プログラムは気にしません。したがって、リファクタリングではないという主張は、プログラムの動作を変えず、したがって設計を変えず、リファクタリングになり得ないというものです。

DefinitionOfRefactoringの中で、「理解しやすく、変更のコストを安くする」というフレーズを使用しました。宣言の変更はこれを実行できますか?場合によってそうだと思います。関連する機能を1つのクラスにまとめることは理にかなっています。また、クラスの仕組みを説明するために機能の順序を並べ替えることもできます。これは、テストケースを作成するときに特に役立ちます(ただし、いくつかのxunit実装では、順序が実行に影響を与える場合があります)。したがって、コードの理解可能性が向上するため、宣言の並べ替えをリファクタリングと見なします。

内部実行を変更しないという事実は、的外れです。メソッドの名前を変更しても実行は変わりませんが、名前変更はプログラムの理解可能性を向上させるための非常に重要なリファクタリングです。