Recientemente leí el libro de Michael C. Feathers Working effectively with legacy code
y encontré el punto donde mencionó una forma de probar la seguridad de las herramientas de refactorización automáticas.¿Hay alguna herramienta de refactorización segura para .net (o al menos C#)?
Mi pregunta es: ¿Existen herramientas de refactorización seguras para la plataforma .net?; eso significa herramientas que solo permiten refactorizaciones reales y p. no permita la refactorización inline variable
en la variable temp
en el siguiente ejemplo, o al menos muestre una advertencia de que estoy cambiando la lógica.
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;
}
}
He probado este ejemplo en las herramientas de refactorización Resharper
y Coderush + Refactor pro
con las últimas versiones y ambos fallaron la prueba y deja que la refactorización a:
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;
}
}
¿Tiene un ejemplo de una herramienta que se * * realizar la forma que desee, incluso para un idioma diferente? –
En realidad, me gustaría que la herramienta no ofrezca esta refactorización en particular o mostrar algún tipo de alerta que esto podría cambiar la lógica del código. Debido a que una refactorización no debe cambiar la lógica, consulte la definición en wikipedia: http://en.wikipedia.org/wiki/Refactoring. – RoXX