Ich habe vor kurzem Michael C. Feathers Buch Working effectively with legacy code
gelesen und stieß auf den Punkt, wo er einen Weg zur Überprüfung der Sicherheit von automatischen Refactoring-Tools erwähnt.Gibt es ein sicheres Refactoring-Tool für .net (oder mindestens C#)?
Meine Frage ist: Gibt es irgendwelche sicheren Refactoring-Tools für die .net-Plattform?; das bedeutet Werkzeuge, die nur echte Refactorings und z.B. Erlauben Sie nicht die inline variable
Refactoring auf der temp
Variable im folgenden Beispiel, oder zeigen Sie zumindest eine Warnung, dass ich Logik ändern.
class Program
{
private static int _x;
static void Main()
{
int temp = Test();
for (int i = 0; i < 10; ++i)
{
Console.WriteLine(temp);
}
Console.ReadKey();
}
private static int Test()
{
return ++_x;
}
}
ich getestet habe dieses Beispiel auf die Refactoring-Tools Resharper
und Coderush + Refactor pro
mit den neuesten Versionen und beide bestanden den Test nicht und erlaubt das Refactoring:
class Program
{
private static int _x;
static void Main()
{
for (int i = 0; i < 10; ++i)
{
Console.WriteLine(Test());
}
Console.ReadKey();
}
private static int Test()
{
return ++_x;
}
}
Haben Sie ein Beispiel für ein Werkzeug, das * * die Art und Weise durchführen würden Sie, auch für eine andere Sprache wünschen? –
Eigentlich würde ich wollen, dass das Tool dieses spezielle Refactoring nicht anbietet oder irgendeine Art von Alarm anzeigt, dass dies die Logik des Codes ändern würde. Da ein Refactoring die Logik nicht ändern darf, siehe die Definition unter Wikipedia: http://en.wikipedia.org/wiki/Refactoring. – RoXX