SlideShare uma empresa Scribd logo
1 de 13
Refatoração de código Python




          Diogo Baeder
1. Introdução
O que é refatoração?
●
    Alterar código sem alterar a funcionalidade
    externa:
    –   Remover duplicação
    –   Melhorar coesão
    –   Melhorar design em geral
Importância
●
    Sem refatoração, software deteriora com o
    tempo
●
    Melhora a legibilidade do código
●
    Ajuda a entender melhor o sistema
Refactoring e TDD
●
    Terceiro passo do ciclo
    “vermelho/verde/refatora”
●
    Refatoração sem testes? Você quis dizer:
    –   Refaketoring
    –   Refucktoring
    –   Defectoring
2. Técnicas
Extract Method
●
    Por quê?
    –   Métodos longos e difíceis de ler
●
    Como?
    –   Crie um método novo
    –   Mova o bloco de código para ele
Extract Class
●
    Por quê?
    –   Classes longas e difíceis de ler
●
    Como?
    –   Crie uma classe nova
    –   Referencie-a no objeto atual
    –   Mova os métodos para ela, um a um
Decompose Conditional
●
    Por quê?
    –   Condicionais difíceis de entender
●
    Como?
    –   Extraia um método a partir da condição; ou
    –   Introduza uma variável a partir da condição
Introduce Parameter Object
●
    Por quê?
    –   Dificuldades de lidar com o cabeçalho dos
        métodos
●
    Como?
    –   Crie um objeto com os parâmetros como atributos
    –   Adicione um parâmetro para o objeto
    –   Passe os parâmetros para ele e leia dele
    –   Remova os parâmetros antigos
3. Referências
●
    “Refactoring – Improving the Design of
    Existing Code” - Martin Fowler
    –   Compre em inglês!!!1
●
    “Refactoring for Patterns” - Joshua Kerievsky
●
    “Clean Code” - Robert “Uncle Bob” Martin
Logo mais:
●
    Design de código: princípios e práticas para
    ter um código sustentável (Andrews Medina –
    auditório – 11:20)
Obrigado!
 Dúvidas?

Mais conteúdo relacionado

Semelhante a Refatoração de código Python: técnicas e benefícios

Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshopguestd37c23
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Class 04 - Android Study Jams: Android Development for Beginners
Class 04 - Android Study Jams: Android Development for BeginnersClass 04 - Android Study Jams: Android Development for Beginners
Class 04 - Android Study Jams: Android Development for BeginnersJordan Silva
 
Refatoração 1/3 webinar
Refatoração 1/3   webinarRefatoração 1/3   webinar
Refatoração 1/3 webinarZG Soluções
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atechcesarcneto
 
Aula03_04_ModelosProcessos.pdf
Aula03_04_ModelosProcessos.pdfAula03_04_ModelosProcessos.pdf
Aula03_04_ModelosProcessos.pdfJadna Almeida
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Thyago Maia
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
 
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindoDe Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindoAnna Cruz
 
Apresentação WTM
Apresentação WTMApresentação WTM
Apresentação WTMAnna Cruz
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"Cesar Romero
 

Semelhante a Refatoração de código Python: técnicas e benefícios (20)

Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshop
 
Code Smells
Code SmellsCode Smells
Code Smells
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
01-Paradigmas.pdf
01-Paradigmas.pdf01-Paradigmas.pdf
01-Paradigmas.pdf
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 
Class 04 - Android Study Jams: Android Development for Beginners
Class 04 - Android Study Jams: Android Development for BeginnersClass 04 - Android Study Jams: Android Development for Beginners
Class 04 - Android Study Jams: Android Development for Beginners
 
Python tdc2019
Python tdc2019 Python tdc2019
Python tdc2019
 
Refatoração 1/3 webinar
Refatoração 1/3   webinarRefatoração 1/3   webinar
Refatoração 1/3 webinar
 
DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
 
Aula03_04_ModelosProcessos.pdf
Aula03_04_ModelosProcessos.pdfAula03_04_ModelosProcessos.pdf
Aula03_04_ModelosProcessos.pdf
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
 
Código limpo php
Código limpo phpCódigo limpo php
Código limpo php
 
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindoDe Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
 
Apresentação WTM
Apresentação WTMApresentação WTM
Apresentação WTM
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 
FDD
FDDFDD
FDD
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"
 

Refatoração de código Python: técnicas e benefícios

  • 1. Refatoração de código Python Diogo Baeder
  • 3. O que é refatoração? ● Alterar código sem alterar a funcionalidade externa: – Remover duplicação – Melhorar coesão – Melhorar design em geral
  • 4. Importância ● Sem refatoração, software deteriora com o tempo ● Melhora a legibilidade do código ● Ajuda a entender melhor o sistema
  • 5. Refactoring e TDD ● Terceiro passo do ciclo “vermelho/verde/refatora” ● Refatoração sem testes? Você quis dizer: – Refaketoring – Refucktoring – Defectoring
  • 7. Extract Method ● Por quê? – Métodos longos e difíceis de ler ● Como? – Crie um método novo – Mova o bloco de código para ele
  • 8. Extract Class ● Por quê? – Classes longas e difíceis de ler ● Como? – Crie uma classe nova – Referencie-a no objeto atual – Mova os métodos para ela, um a um
  • 9. Decompose Conditional ● Por quê? – Condicionais difíceis de entender ● Como? – Extraia um método a partir da condição; ou – Introduza uma variável a partir da condição
  • 10. Introduce Parameter Object ● Por quê? – Dificuldades de lidar com o cabeçalho dos métodos ● Como? – Crie um objeto com os parâmetros como atributos – Adicione um parâmetro para o objeto – Passe os parâmetros para ele e leia dele – Remova os parâmetros antigos
  • 11. 3. Referências ● “Refactoring – Improving the Design of Existing Code” - Martin Fowler – Compre em inglês!!!1 ● “Refactoring for Patterns” - Joshua Kerievsky ● “Clean Code” - Robert “Uncle Bob” Martin
  • 12. Logo mais: ● Design de código: princípios e práticas para ter um código sustentável (Andrews Medina – auditório – 11:20)