SlideShare una empresa de Scribd logo
1 de 9
Refactoring
                      angel.nunez.salazar@gmail.com
Angel Núñez Salazar     http://snahider.blogspot.com
                                           @snahider
Cualquier tonto puede escribir código que
       entienda una computadora.
Los buenos programadores escriben código
    que puedan entender los humanos.
                              Martin Fowler
Refactoring


  Es una técnica disciplinada que nos permite
mejorar la estructura interna del código sin alterar
               su comportamiento.

                       http://www.refactoring.com/
¿ Porqué es importante ?
  Porqué necesito a arreglar algo que no está roto

Si tenemos un código:
• Poco entendible
• Duplicado
• Muy complejo

…. es más difícil agregar o modificar funcionalidad
              (valor de negocio)
 y por lo tanto más costoso en tiempo y dinero.
Herramientas
 Como producir mejoras significativas sin mucho esfuerzo




La mayoría de los IDES proveen herramientas para
realizar determinadas transformaciones de manera
                 rápida y efectiva.
Code Smells
            ¿Qué debemos Refactorizar?

Señales de advertencia de un posible problema en
                nuestro código.




                Si huele mal, cámbialo!!!!
Referencias
Cursos / Talleres
• Open Edge Technologies - http://www.openedgetech.com

Páginas
• Martin fowler - http://martinfowler.com/bliki/refactoring.html
• Source Making - http://sourcemaking.com/refactoring

Libros
• Improving the Design of Existing Code
• Refactoring Workbook
• Refactoring to Patterns


                                            angel.nunez.salazar@gmail.com
Angel Núñez Salazar                           http://snahider.blogspot.com
                                                                 @snahider

Más contenido relacionado

Similar a Refactoring

Tips para-mejorar-productividad
Tips para-mejorar-productividadTips para-mejorar-productividad
Tips para-mejorar-productividadPamela Canchanya
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptxDyllanBastidas
 
¿Te Sientes Orgulloso Del CóDigo Que Escribes?
¿Te Sientes Orgulloso Del CóDigo Que Escribes?¿Te Sientes Orgulloso Del CóDigo Que Escribes?
¿Te Sientes Orgulloso Del CóDigo Que Escribes?Israel Antezana Rojas
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyTelefónica
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePointAdrian Diaz Cervera
 
Ecosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - AutomatizaciónEcosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - AutomatizaciónManuel Jesús Recena Soto
 
PULL REQUEST, Code-review, peer-review.pptx
PULL REQUEST, Code-review, peer-review.pptxPULL REQUEST, Code-review, peer-review.pptx
PULL REQUEST, Code-review, peer-review.pptxgeatorresg3
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015Taller Negócio Digitais
 
Volviendo a poner el “soft” en software
Volviendo a poner el “soft” en softwareVolviendo a poner el “soft” en software
Volviendo a poner el “soft” en softwareDanijel Arsenovski
 
RAD Studio XE8 - Delphi Tour 2015 - Edición en Español
RAD Studio XE8 - Delphi Tour 2015 - Edición en EspañolRAD Studio XE8 - Delphi Tour 2015 - Edición en Español
RAD Studio XE8 - Delphi Tour 2015 - Edición en EspañolFernando Rizzato
 

Similar a Refactoring (20)

"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Tips para-mejorar-productividad
Tips para-mejorar-productividadTips para-mejorar-productividad
Tips para-mejorar-productividad
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx
 
Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
¿Te Sientes Orgulloso Del CóDigo Que Escribes?
¿Te Sientes Orgulloso Del CóDigo Que Escribes?¿Te Sientes Orgulloso Del CóDigo Que Escribes?
¿Te Sientes Orgulloso Del CóDigo Que Escribes?
 
Day01
Day01Day01
Day01
 
Swreng
SwrengSwreng
Swreng
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePoint
 
Presentacion2
Presentacion2Presentacion2
Presentacion2
 
Programmer visions
Programmer visionsProgrammer visions
Programmer visions
 
Ecosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - AutomatizaciónEcosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - Automatización
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
PULL REQUEST, Code-review, peer-review.pptx
PULL REQUEST, Code-review, peer-review.pptxPULL REQUEST, Code-review, peer-review.pptx
PULL REQUEST, Code-review, peer-review.pptx
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015
 
Volviendo a poner el “soft” en software
Volviendo a poner el “soft” en softwareVolviendo a poner el “soft” en software
Volviendo a poner el “soft” en software
 
Esto es ingeniería inversa
Esto es ingeniería inversaEsto es ingeniería inversa
Esto es ingeniería inversa
 
RAD Studio XE8 - Delphi Tour 2015 - Edición en Español
RAD Studio XE8 - Delphi Tour 2015 - Edición en EspañolRAD Studio XE8 - Delphi Tour 2015 - Edición en Español
RAD Studio XE8 - Delphi Tour 2015 - Edición en Español
 
Metodos agiles 4
Metodos agiles 4Metodos agiles 4
Metodos agiles 4
 

Más de Angel Nuñez

Structural Agility
Structural AgilityStructural Agility
Structural AgilityAngel Nuñez
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical SystemsAngel Nuñez
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development FlowAngel Nuñez
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalAngel Nuñez
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo TransformacionalAngel Nuñez
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsAngel Nuñez
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory TestingAngel Nuñez
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingAngel Nuñez
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test StrategyAngel Nuñez
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummitAngel Nuñez
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing ClubAngel Nuñez
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlimaAngel Nuñez
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeAngel Nuñez
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven InfrastructureAngel Nuñez
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteAngel Nuñez
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NETAngel Nuñez
 
Continuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to HeroContinuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to HeroAngel Nuñez
 

Más de Angel Nuñez (20)

Structural Agility
Structural AgilityStructural Agility
Structural Agility
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical Systems
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development Flow
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura Organizacional
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo Transformacional
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOps
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory Testing
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and Scaling
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test Strategy
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummit
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing Club
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
 
Unit testing
Unit testingUnit testing
Unit testing
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
 
Continuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to HeroContinuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to Hero
 

Refactoring

  • 1. Refactoring angel.nunez.salazar@gmail.com Angel Núñez Salazar http://snahider.blogspot.com @snahider
  • 2. Cualquier tonto puede escribir código que entienda una computadora. Los buenos programadores escriben código que puedan entender los humanos. Martin Fowler
  • 3. Refactoring Es una técnica disciplinada que nos permite mejorar la estructura interna del código sin alterar su comportamiento. http://www.refactoring.com/
  • 4. ¿ Porqué es importante ? Porqué necesito a arreglar algo que no está roto Si tenemos un código: • Poco entendible • Duplicado • Muy complejo …. es más difícil agregar o modificar funcionalidad (valor de negocio) y por lo tanto más costoso en tiempo y dinero.
  • 5.
  • 6. Herramientas Como producir mejoras significativas sin mucho esfuerzo La mayoría de los IDES proveen herramientas para realizar determinadas transformaciones de manera rápida y efectiva.
  • 7. Code Smells ¿Qué debemos Refactorizar? Señales de advertencia de un posible problema en nuestro código. Si huele mal, cámbialo!!!!
  • 8.
  • 9. Referencias Cursos / Talleres • Open Edge Technologies - http://www.openedgetech.com Páginas • Martin fowler - http://martinfowler.com/bliki/refactoring.html • Source Making - http://sourcemaking.com/refactoring Libros • Improving the Design of Existing Code • Refactoring Workbook • Refactoring to Patterns angel.nunez.salazar@gmail.com Angel Núñez Salazar http://snahider.blogspot.com @snahider