SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
RefatoraçãoRefatoração
@nbluis
@joleques
@nbluis
@joleques
Eduardo Bohrer - @nbluis
• Desenvolvedor na uMov.me
• Entusiasta de metodologias ágeis
• No mercado de TI a mais de 10 anos
• Participante assíduo de eventos e comunidades de
software
Jorge Oleques - @joqueles
• Desenvolvedor na uMov.me
• Entusiasta XP
• No mercado de TI há 6 anos
• Formado Analise e Desenvolvimento
• Pós-Graduando em Eng. Software na FGV
Refatoração
Melhora o entendimento do sistema
Facilita os testes
Prós e contras
CustosCustos
Trabalho
Atualizar documentação, pessoas
Riscos
Prós e contras
Custo de manutenção
Quando ?
Quando ?
● Regra de 3
● Complexidade do código (Mal
cheiros)
● Sempre que começar uma
manutenção
Os 3 dilemas da refatoração
1 - Falta de testes
2 - Código legado
3 - Risco / Tamanho refatoração
Proxies
Baby steps
Adapter
Legacy
Wrapper
Integration
Layer
Dicas
● Nunca sem testes*
● Técnica dos chapéus (refatora / implementa)
● Regra do escoteiro
● Prática / Dojos
● O time (PO inclusive) precisa entender o valor
● Faz parte do tempo de desenvolvimento (Não é uma tarefa a parte)
Conclusões
● Coragem
● Refatorar sempre
○ Dê o primeiro passo
○ Baby steps
RefatoraçãoRefatoração
@nbluis
@joleques
@nbluis
@joleques

Mais conteúdo relacionado

Mais procurados

Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficienteCamilo Ribeiro
 
Meus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareMeus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareVanilton Pinheiro
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...GessdaSilvaMachado
 
TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaChristian Cunha
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
Avaliação de interfaces com o usuário atraves de prototipação
Avaliação de interfaces com o usuário atraves de prototipaçãoAvaliação de interfaces com o usuário atraves de prototipação
Avaliação de interfaces com o usuário atraves de prototipaçãoLivia Gabos
 
Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de SoftwareIgor Takenami
 
Testes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NETTestes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NETAlessandro Binhara
 
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...José Correia
 
Abertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 GoiåniaAbertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 GoiåniaElias Nogueira
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de softwareleopp
 
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Maurício Aniche
 
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações WebProposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações WebMaurício Aniche
 
Femug #9 iniciando com testes em node js!
Femug #9   iniciando com testes em node js!Femug #9   iniciando com testes em node js!
Femug #9 iniciando com testes em node js!Leandro Nishijima
 
Aula 6 - Prototipação de telas
Aula 6 - Prototipação de telasAula 6 - Prototipação de telas
Aula 6 - Prototipação de telasJanynne Gomes
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
 

Mais procurados (19)

Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficiente
 
Meus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de SoftwareMeus 50 Cents sobre Teste de Software
Meus 50 Cents sobre Teste de Software
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian Cunha
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
Avaliação de interfaces com o usuário atraves de prototipação
Avaliação de interfaces com o usuário atraves de prototipaçãoAvaliação de interfaces com o usuário atraves de prototipação
Avaliação de interfaces com o usuário atraves de prototipação
 
Introdução a Testes de Software
Introdução a Testes de SoftwareIntrodução a Testes de Software
Introdução a Testes de Software
 
Testes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NETTestes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NET
 
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
 
Abertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 GoiåniaAbertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 Goiånia
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
 
Carreira de Testes
Carreira de TestesCarreira de Testes
Carreira de Testes
 
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
 
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações WebProposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
 
Femug #9 iniciando com testes em node js!
Femug #9   iniciando com testes em node js!Femug #9   iniciando com testes em node js!
Femug #9 iniciando com testes em node js!
 
Aula 6 - Prototipação de telas
Aula 6 - Prototipação de telasAula 6 - Prototipação de telas
Aula 6 - Prototipação de telas
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 
Engenharia de software - Prototipo
Engenharia de software - PrototipoEngenharia de software - Prototipo
Engenharia de software - Prototipo
 

Destaque

Chaos Report - Web Security Version
Chaos Report - Web Security VersionChaos Report - Web Security Version
Chaos Report - Web Security VersionEduardo Bohrer
 
Standish Chaos Report - Cercle de Discussion - PMI Branche Midi-Pyrénées (Vi...
Standish Chaos Report  - Cercle de Discussion - PMI Branche Midi-Pyrénées (Vi...Standish Chaos Report  - Cercle de Discussion - PMI Branche Midi-Pyrénées (Vi...
Standish Chaos Report - Cercle de Discussion - PMI Branche Midi-Pyrénées (Vi...Vincent Dumain
 
Reporte de la pelicula "El estudiante"
Reporte de la pelicula  "El estudiante"Reporte de la pelicula  "El estudiante"
Reporte de la pelicula "El estudiante"arais_castro
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
CMMI CALIDAD EN SOFTWARE
CMMI CALIDAD EN SOFTWARECMMI CALIDAD EN SOFTWARE
CMMI CALIDAD EN SOFTWAREkatymi13
 
Chaos report 2012
Chaos report 2012Chaos report 2012
Chaos report 2012Placosta
 

Destaque (7)

Chaos Report - Web Security Version
Chaos Report - Web Security VersionChaos Report - Web Security Version
Chaos Report - Web Security Version
 
Standish Chaos Report - Cercle de Discussion - PMI Branche Midi-Pyrénées (Vi...
Standish Chaos Report  - Cercle de Discussion - PMI Branche Midi-Pyrénées (Vi...Standish Chaos Report  - Cercle de Discussion - PMI Branche Midi-Pyrénées (Vi...
Standish Chaos Report - Cercle de Discussion - PMI Branche Midi-Pyrénées (Vi...
 
Relatório 2012 geral
Relatório 2012   geralRelatório 2012   geral
Relatório 2012 geral
 
Reporte de la pelicula "El estudiante"
Reporte de la pelicula  "El estudiante"Reporte de la pelicula  "El estudiante"
Reporte de la pelicula "El estudiante"
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
CMMI CALIDAD EN SOFTWARE
CMMI CALIDAD EN SOFTWARECMMI CALIDAD EN SOFTWARE
CMMI CALIDAD EN SOFTWARE
 
Chaos report 2012
Chaos report 2012Chaos report 2012
Chaos report 2012
 

Semelhante a Refatoração - XPConfBR 2015

[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de TestesGUTS-RS
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolsoTecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolsoRodrigo Calumby
 
Apresentacao tdc 2012
Apresentacao tdc 2012Apresentacao tdc 2012
Apresentacao tdc 2012Jorge Oleques
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareDaniel Cukier
 
Construindo Chatbots com Design Thinking e framework i*: um método estruturado
Construindo Chatbots com Design Thinking e framework i*: um método estruturadoConstruindo Chatbots com Design Thinking e framework i*: um método estruturado
Construindo Chatbots com Design Thinking e framework i*: um método estruturadoMeire Helen Batista Dias
 
TDC2018SP | Trilha ChatBots - Construindo Chatbots com Design Thinking e fram...
TDC2018SP | Trilha ChatBots - Construindo Chatbots com Design Thinking e fram...TDC2018SP | Trilha ChatBots - Construindo Chatbots com Design Thinking e fram...
TDC2018SP | Trilha ChatBots - Construindo Chatbots com Design Thinking e fram...tdc-globalcode
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...GUTS-RS
 
Implantação e Manutenção de Softwares
Implantação e Manutenção de SoftwaresImplantação e Manutenção de Softwares
Implantação e Manutenção de SoftwaresMarcelo Schumacher
 
XPCE - Qualidade no Código
XPCE - Qualidade no CódigoXPCE - Qualidade no Código
XPCE - Qualidade no CódigoJosé Araújo
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Um Esforço Combinado Na Padronização
Um Esforço Combinado Na PadronizaçãoUm Esforço Combinado Na Padronização
Um Esforço Combinado Na Padronizaçãowallyvianna
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
 

Semelhante a Refatoração - XPConfBR 2015 (20)

[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes[GUTS-RS] GUTS Universitário - Carreira de Testes
[GUTS-RS] GUTS Universitário - Carreira de Testes
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolsoTecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
Tecnologias Abertas: Visão geral, mitos, produtividade e dinheiro no bolso
 
Introdução ao XP
Introdução ao XPIntrodução ao XP
Introdução ao XP
 
Apresentacao tdc 2012
Apresentacao tdc 2012Apresentacao tdc 2012
Apresentacao tdc 2012
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
 
Construindo Chatbots com Design Thinking e framework i*: um método estruturado
Construindo Chatbots com Design Thinking e framework i*: um método estruturadoConstruindo Chatbots com Design Thinking e framework i*: um método estruturado
Construindo Chatbots com Design Thinking e framework i*: um método estruturado
 
TDC2018SP | Trilha ChatBots - Construindo Chatbots com Design Thinking e fram...
TDC2018SP | Trilha ChatBots - Construindo Chatbots com Design Thinking e fram...TDC2018SP | Trilha ChatBots - Construindo Chatbots com Design Thinking e fram...
TDC2018SP | Trilha ChatBots - Construindo Chatbots com Design Thinking e fram...
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
 
eXtreme eXperiment
eXtreme eXperimenteXtreme eXperiment
eXtreme eXperiment
 
Implantação e Manutenção de Softwares
Implantação e Manutenção de SoftwaresImplantação e Manutenção de Softwares
Implantação e Manutenção de Softwares
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
 
jCompany X Geradores de Códigos
jCompany X Geradores de CódigosjCompany X Geradores de Códigos
jCompany X Geradores de Códigos
 
XPCE - Qualidade no Código
XPCE - Qualidade no CódigoXPCE - Qualidade no Código
XPCE - Qualidade no Código
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Prototipação
PrototipaçãoPrototipação
Prototipação
 
Um Esforço Combinado Na Padronização
Um Esforço Combinado Na PadronizaçãoUm Esforço Combinado Na Padronização
Um Esforço Combinado Na Padronização
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
 
Teste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e AplicandoTeste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e Aplicando
 

Mais de Eduardo Bohrer

Monitorando sistemas distribuidos
Monitorando sistemas distribuidosMonitorando sistemas distribuidos
Monitorando sistemas distribuidosEduardo Bohrer
 
Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Eduardo Bohrer
 
Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Eduardo Bohrer
 
Git para quem gosta de git
Git para quem gosta de gitGit para quem gosta de git
Git para quem gosta de gitEduardo Bohrer
 
NoSQL and AWS Dynamodb
NoSQL and AWS DynamodbNoSQL and AWS Dynamodb
NoSQL and AWS DynamodbEduardo Bohrer
 
uMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançadouMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançadoEduardo Bohrer
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)Eduardo Bohrer
 
Memória e Garbage Collection na JVM
Memória e Garbage Collection na JVMMemória e Garbage Collection na JVM
Memória e Garbage Collection na JVMEduardo Bohrer
 

Mais de Eduardo Bohrer (8)

Monitorando sistemas distribuidos
Monitorando sistemas distribuidosMonitorando sistemas distribuidos
Monitorando sistemas distribuidos
 
Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18
 
Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!
 
Git para quem gosta de git
Git para quem gosta de gitGit para quem gosta de git
Git para quem gosta de git
 
NoSQL and AWS Dynamodb
NoSQL and AWS DynamodbNoSQL and AWS Dynamodb
NoSQL and AWS Dynamodb
 
uMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançadouMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançado
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)
 
Memória e Garbage Collection na JVM
Memória e Garbage Collection na JVMMemória e Garbage Collection na JVM
Memória e Garbage Collection na JVM
 

Refatoração - XPConfBR 2015