私のコードベースでよく使用する方法の1つは、つづりが間違っています(そしてそれは私よりも前のものです)。
これは単にスペルが間違っているだけでなく、もっと重要なことですが、最初にタイプするときに常に名前を間違えます(そして、「ああ、そうです、これにスペルを間違えるべきです...」)
元の方法を中心にいくつかの変更を行っています。機会を利用して、単におかしな方法の名前を変更する必要がありますか?
私のコードベースでよく使用する方法の1つは、つづりが間違っています(そしてそれは私よりも前のものです)。
これは単にスペルが間違っているだけでなく、もっと重要なことですが、最初にタイプするときに常に名前を間違えます(そして、「ああ、そうです、これにスペルを間違えるべきです...」)
元の方法を中心にいくつかの変更を行っています。機会を利用して、単におかしな方法の名前を変更する必要がありますか?
回答:
機会を利用して、単におかしな方法の名前を変更する必要がありますか?
ただし、コードがAPIとしてリリースされた場合は、通常、ミススペルされたメソッドを残して、正しい名前のメソッドに転送する必要があります(言語がそのようなことをサポートしている場合は廃止とマークします)。
そのようなリファクタリングの実行を避ける必要がある場合があります。
メソッドがパブリックインターフェイスで使用される場合。標準的な例は、スペルミスのあるリファラでHTTPリファラ今スペルを変更すると、あまりにも多くの影響を持っているでしょうので、間違った綴りは、保管されています。
コードベースがテストでカバーされていない場合。 任意のリファクタリングは、回帰テストを行うことができるようにするためにテストされたコードで実行する必要があります。テストされていないコードベースのリファクタリングは特に危険です。時間が長い場合は、テストを追加することから始めます。時間の制約の下で作業している場合、時間通りに出荷したい場合は、微妙なバグを持ち込むリスクを冒すことは最善の策ではありません。
メソッドが異常な方法で使用される可能性がある場合、その使用を見つけることは事実上不可能になります(Ctrl + Fまたは自動リファクタリングツールを使用)。たとえば、C#では、Reflectionを介してメソッドを呼び出して、Visual Studioの[名前の変更]ダイアログを無効にすることができます。JavaScriptでは、inside eval()
と呼ばれる関数も見つけるのが困難です。PHPでは、変数変数が問題を引き起こす可能性があります。
プロジェクトのサイズが巨大で、他のチームがメソッドを使用できる場合。これは最初のポイントに似ています。つまり、他のチームに提供するインターフェイスはパブリックインターフェイスと見なすことができます。
命に関わるプロジェクトを扱う場合。メソッドの名前を変更し、承認された放射線の10倍を患者に送ったり、シャトルが速度を誤って計算したりしないようにするために、ミススペルは数か月の書類作業を正当化するほど重要ではありません。
その他の状況では、メソッドの名前を自由に変更してください。
数か月前にこれをやったことがあります(さまざまな理由で)。私がとったステップ(言語はPerlでした):
しばらくして、古い名前のメソッドを削除します。
もちろん、走行距離は異なります。
既存のコードを壊さないための良い方法は、次のように新しいメソッド名を古いものに連鎖させることです
private void MyNewMethodName()
{
TheOldMethodName();
}
そして、古いメソッドを廃止としてマークします(言語がこれをサポートしている場合)。これにより、既存のコードは引き続き機能し、コードベースからすべての古いスペルミスを徐々に取り除くことができます。最終的に、メソッド本体を新しいメソッドにコピーして貼り付け、古いメソッドを削除することさえできます。
/ ivoがコメントで述べたように:コードをからTheOldMethodName
に移動MyNewMethodName
し、古いメソッドから新しいメソッドを呼び出すことは、さらに良いことです。これには、開発者がコードが属する場所を把握するのに役立つという利点もあります。