SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Refatoração na
Prática
By Vitor Castro
Iniciando os trabalhos
Conceitos
Tipos de
Refatoração
#codando
Desafio
TODO DOING DONE
Quadro de Atividades
ConceitosTipos de
Refatoração
#codando
Desafio
TODO DOING DONE
–Kent Beck
“uma alteração feita nas
estrutura interna para torná-lo
mais fácil de ser entendido e
menos custoso de ser modificado
sem alterar seu comportamento
observável .”
Refatoração
–Kent Beck
“reestruturar software aplicando
uma série de refatorações sem
alterar seu comportamento
observável”
Refatorar
Metáfora dos dois
chapéus
#codar #refatorar
REGRA DE TRÊS
1. faz
2. Vai fazer algo parecido #1
3. Refatora
“cagadas no código …”
Código duplicado
Métodos longos
Classes grandes
Lista de parâmetros longa
Alteração divergente #mexeMuitoEmUmaClasse
Cirurgia com rifle #mexeMuitoEmVáriasClasses
#maisComentárioQueCodigo
Quadro de Atividades
ConceitosTipos de
Refatoração
#codando
Desafio
TODO DOING DONE
Compondo métodos
#1
Introduzir variável
explícita
#2
Substituir Método por
Objeto Método
#3
Substituir algoritmo
#4
Substituir vetor por
objetos
#5
Substituir números
mágicos por constantes
#6
Substituir comando
condicional por Polimorfismo
#7
Quadro de Atividades
Conceitos
Tipos de
Refatoração
#codando
Desafio
TODO DOING DONE
–Vitor Castro
Aplicar pelo menos 3 refatorações
dentre as apresentadas em algum
projeto da DISI.
Tempo Estimado de 20 min.
Desafio
Quadro de Atividades
Conceitos
Tipos de
Refatoração
#codando
Avaliação
TODO DOING DONE
Desafio
Quadro de Atividades
Conceitos
Tipos de
Refatoração
#codando
Avaliação
TODO DOING DONE
Desafio
–Christopher Locke, coautor de “O manifesto de
economia digital”
“As melhores práticas geralmente
não são as melhores”

Mais conteúdo relacionado

Semelhante a Refatoração na prática

Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
abacrazy
 
Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developing
Renato Oliveira
 

Semelhante a Refatoração na prática (20)

Vida longa ao legado
Vida longa ao legadoVida longa ao legado
Vida longa ao legado
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do Teste
 
Bdd&tdd
Bdd&tddBdd&tdd
Bdd&tdd
 
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicação
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicaçãoRefatoração e uma vida saudável para o desenvolvedor e para sua aplicação
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicação
 
Mantendo a plenitude do seu novo legado com code-refactoring
Mantendo a plenitude do seu novo legado com code-refactoringMantendo a plenitude do seu novo legado com code-refactoring
Mantendo a plenitude do seu novo legado com code-refactoring
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshop
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
Behaviour-Driven Development com Ruby
Behaviour-Driven Development com RubyBehaviour-Driven Development com Ruby
Behaviour-Driven Development com Ruby
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_js
 
Refatoracao de codigo
Refatoracao de codigoRefatoracao de codigo
Refatoracao de codigo
 
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
 
Hello ReactJs
Hello ReactJsHello ReactJs
Hello ReactJs
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
 
TDD
TDDTDD
TDD
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 
Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developing
 

Mais de Vitor Castro (7)

Agilidade na Veia
Agilidade na VeiaAgilidade na Veia
Agilidade na Veia
 
Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017
 
Desafios e aprendizados - Unifesspa
Desafios e aprendizados - UnifesspaDesafios e aprendizados - Unifesspa
Desafios e aprendizados - Unifesspa
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Debito tecnico
Debito tecnicoDebito tecnico
Debito tecnico
 
Time ágil ... será ?
Time ágil ... será ?Time ágil ... será ?
Time ágil ... será ?
 
Notas AgileBrazil 2011
Notas AgileBrazil 2011Notas AgileBrazil 2011
Notas AgileBrazil 2011
 

Último

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Refatoração na prática