17
Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net Hector Minaya, mcsd.net [email protected] [email protected] MR2 Solutions MR2 Solutions www.mr2solutions.net www.mr2solutions.net

Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net [email protected] MR2 Solutions

Embed Size (px)

Citation preview

Page 1: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

Refactoring –Visual Studio 2005

Hector Minaya, mcsd.netHector Minaya, [email protected]@mr2solutions.net

MR2 SolutionsMR2 Solutions

www.mr2solutions.netwww.mr2solutions.net

Page 2: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

¿Que Cubriremos?¿Que Cubriremos?

Elementos Básicos

Soporte en Visual Studio 2005 – C#

Refactoring y Visual Basic 2005

Page 3: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

PrerrequisitosPrerrequisitos

Experiencia de desarrollo utilizando C# Experiencia de desarrollo utilizando C# o Visual Basico Visual Basic

Conceptos básicos sobre Programación Conceptos básicos sobre Programación Orientada a ObjetosOrientada a Objetos

Nivel 200Nivel 200

Page 4: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

AgendaAgenda

Elementos BásicosElementos Básicos

Soporte en Visual Studio 2005 – C#Soporte en Visual Studio 2005 – C#

Refactoring y Visual Basic 2005Refactoring y Visual Basic 2005

Page 5: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

Elementos BásicosElementos Básicos

¿Que es Refactoring?¿Que es Refactoring? Es el proceso de cambiar la estructura del código Es el proceso de cambiar la estructura del código

existente para mejorar su legibilidad y facilitar el existente para mejorar su legibilidad y facilitar el mantenimiento, de tal forma que no se rompa el mantenimiento, de tal forma que no se rompa el funcionamiento del mismofuncionamiento del mismo

Al alterar su estructura interna no debemos Al alterar su estructura interna no debemos modificar su comportamiento externo.modificar su comportamiento externo.

Independencia de Lenguaje o Independencia de Lenguaje o PlataformaPlataforma Se utiliza en todos los lenguajes de desarrolloSe utiliza en todos los lenguajes de desarrollo

Page 6: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

Ejemplo – renombrar métodoEjemplo – renombrar método

Después de Refactorizar:

Antes de Refactorizar:

double calcRngMaxPer() { .... }

double calcularRangoMaximoPermitido() { .... }

Page 7: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

Ejemplo – Cambiar numero mágico Ejemplo – Cambiar numero mágico por constantepor constante

Después de Refactorizar:

Antes de Refactorizar:

class CalculoSimple { public static double CalcularCincunferencia(double diametro) { return 3.14 * diametro; } }

class CalculoSimple { public const double PI = 3.14; public static double CalcularCincunferencia(double diametro) { return PI * diametro; } }

Page 8: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

Ejemplo – subir métodoEjemplo – subir método

Page 9: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

Cuando se debe hacerCuando se debe hacer

Cuando se agrega una nueva Cuando se agrega una nueva funcionalidadfuncionalidad

Al depurar el códigoAl depurar el código

Cuando se esta revisandoCuando se esta revisando

Page 10: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

AgendaAgenda

Elementos BásicosElementos Básicos

Soporte en Visual Studio 2005 – C#Soporte en Visual Studio 2005 – C#

Refactoring y Visual Basic 2005Refactoring y Visual Basic 2005

Page 11: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

VS2005 & C#VS2005 & C#

Nuevo menú de refactorizaciónNuevo menú de refactorización

Page 12: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

DemosDemos Visual Studio 2005 & C#Visual Studio 2005 & C#

RenameRename

Promote Local Variable to ParameterPromote Local Variable to ParameterExtract MethodExtract Method

Encapsulate FieldEncapsulate FieldReorder ParametersReorder Parameters

Page 13: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

AgendaAgenda

Elementos BásicosElementos Básicos

Soporte en Visual Studio 2005 – C#Soporte en Visual Studio 2005 – C#

Refactoring y Visual Basic 2005Refactoring y Visual Basic 2005

Page 14: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

Refactor! For Visual Basic 2005Refactor! For Visual Basic 2005

Plug-in gratis de Developer Express Inc.Plug-in gratis de Developer Express Inc.

Page 15: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

DemosDemosRefactor for Visual Studio 2005 & VBRefactor for Visual Studio 2005 & VB

Encapsulate FieldEncapsulate Field

SplitSplitIntroduce ConstantIntroduce Constant

Extract MethodExtract MethodReorder ParametersReorder Parameters

Page 16: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

Recursos en líneaRecursos en línea

Website de Martin FowlerWebsite de Martin Fowlerwww.Refactoring.comwww.Refactoring.com

Refactoring & C#Refactoring & C#http://msdn.microsoft.com/library/default.asp?http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/VS05_refac.aspurl=/library/en-us/dnvs05/html/VS05_refac.asp

Refactor Plug-in for VS2005 & VBRefactor Plug-in for VS2005 & VBhttp://www.devexpress.com/Support/http://www.devexpress.com/Support/BestPractices/IDE/Refactor/BestPractices/IDE/Refactor/

Información AdicionalInformación Adicionalwww.mr2solutions.netwww.mr2solutions.net

Page 17: Refactoring – Visual Studio 2005 Hector Minaya, mcsd.net hminaya@mr2solutions.net MR2 Solutions

¿Preguntas?¿Preguntas?