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: Conceitos e Tipos

Vida longa ao legado
Vida longa ao legadoVida longa ao legado
Vida longa ao legadoEduardo Cesar
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteAislan Fernandes
 
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çãoEduardo Cesar
 
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-refactoringEduardo Cesar
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshopguestd37c23
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehaveMarcelo Zeferino
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPMarcelo Andrade
 
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 2017Thiago Barradas
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_jsgustavobeavis
 
Refatoracao de codigo
Refatoracao de codigoRefatoracao de codigo
Refatoracao de codigoPaula Santana
 
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...Danilo Sato
 
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 Ágilabacrazy
 
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 developingRenato Oliveira
 

Semelhante a Refatoração na Prática: Conceitos e Tipos (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

Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017Vitor Castro
 
Desafios e aprendizados - Unifesspa
Desafios e aprendizados - UnifesspaDesafios e aprendizados - Unifesspa
Desafios e aprendizados - UnifesspaVitor Castro
 
Testes de software
Testes de softwareTestes de software
Testes de softwareVitor Castro
 
Time ágil ... será ?
Time ágil ... será ?Time ágil ... será ?
Time ágil ... será ?Vitor Castro
 
Notas AgileBrazil 2011
Notas AgileBrazil 2011Notas AgileBrazil 2011
Notas AgileBrazil 2011Vitor Castro
 

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
 

Refatoração na Prática: Conceitos e Tipos