$30 off During Our Annual Pro Sale. View Details »

Desmistificando a Refatoração - TDC Innovation 2021

Desmistificando a Refatoração - TDC Innovation 2021

Palestra online apresentada no evento TDC Innovation 2021, na sala do Grupo Boticário. Com o tema Desmistificando a Refatoração, o objetivo da palestra foi mostrar um pouco sobre refatoração, a importância desse tema e trazer dicas práticas sobre refatoração.

Palestra apresentada em conjunto com o Antonio Almeida (Squad Leader) e Roger Albino - Front-end Developer.

Roger Albino

March 25, 2021
Tweet

More Decks by Roger Albino

Other Decks in Programming

Transcript

  1. Desmistificando a
    Refatoração

    View Slide

  2. ü Antonio Almeida
    ü Roger Albino
    QUEM SOMOS NÓS?

    View Slide

  3. ü Conhecendo o Grupo Boticário
    ü Introdução à refatoração
    ü Quando eu devo refatorar?
    ü Principais técnicas
    ü Conclusão
    AGENDA

    View Slide

  4. Conhecendo o
    Grupo Boticário

    View Slide

  5. Orgulho
    É A P A L A V R A Q U E D E F I N E
    N O S S O S E N T I M E N T O .
    ( M A S P O R Q U Ê ? )
    Q U A N D O F A L A M O S D E T R A B A L H A R
    N O G R U P O B O T I C Á R I O ,

    View Slide

  6. _ O GR U P O BOTICÁ R IO
    10
    ENTRE OS
    MAIORES
    VAREJISTAS
    DO BRASIL
    PONTOS
    DE VENDA
    MULTIMARCA
    35
    mil
    PRESENTES EM
    cidades em todo o Brasil
    e em mais de 15 países
    99.9%
    ELEITO EM 2019
    maior
    franquia
    em nº lojas
    2
    FÁ B RI C A S
    5
    C D ´S
    5
    ES C RI TÓRI OS
    S. J. dos Pinhais - PR
    Camaçari - BA
    Registro - SP
    Jaguaré - SP
    Serra - ES
    S. Gonçalo dos
    Campos - BA
    Varginha - MG
    Curitiba
    São Paulo Portugal
    Colômbia
    China
    SOMOS O maior
    e-commerce
    de beleza
    do Brasil

    View Slide

  7. somos 12.000
    _ O GR U P O BOTICÁ R IO
    M U I T A G E N T E C R E S C E U J U N T O C O M A G E N T E .
    E N Ã O V A M O S P A R A R P O R A Q U I .
    1 9 7 7 2 0 1 1 2 0 1 2 2 0 1 2 2 0 1 7 2 0 1 8 2 0 1 9
    2 0 1 6
    1 9 9 0 2 0 0 4

    View Slide

  8. P O R Q U E T E M O S O R G U L H O D E T R A B A L H A R N O G R U P O B O T I C Á R I O ?
    P O R Q U E V A L E A P E N A ?

    View Slide

  9. _ O EV P
    #MOVIDOSPELOPROPÓSITO
    #MOVIDOSPELONOVO
    #MOVIDOSPORGENTE
    #MOVIDOSPELAPOTENCIA
    #MOVIDOSPELAEVOLUÇÃO
    O QUE O MERCADO
    ESPERA
    O QUE A EMPRESA
    ENTREGA
    Chegamos em grandes
    temas onde temos
    legitimidade para
    navegar e (muitas!)
    razões para acreditar

    View Slide

  10. /grupoboticario
    grupo-boticário
    grupoboticario.com.br

    View Slide

  11. Introdução à
    Refatoração

    View Slide

  12. REFATORAÇÃO
    ü Martin Fowler e Kent Beck
    ü Livros publicados em 1999 e 2018

    View Slide

  13. ü Quando estamos alterando um código para melhorar sua estrutura sem
    mudarmos o comportamento do código.
    ü Não é sobre melhorar o desempenho de um algoritmo e sim sobre otimizar
    a leitura do código.
    O QUE É REFATORAÇÃO?

    View Slide

  14. SUBSTANTIVO
    VERBO
    Uma mudança feita na estrutura interna do software para torná-lo simples e fácil
    de entender e mais barato para modificar.
    Sem alterar o comportamento observável do software.
    Uma mudança estrutural no software através da aplicação de uma série
    de refatorações, sem alterar o comportamento observável do software.
    Maneiras de falar sobre a
    Refatoração

    View Slide

  15. “Qualquer tolo consegue escrever código que um computador
    entenda. Bons programadores escrevem código que humanos
    possam entender.” Martin Fowler
    _O DESAFIO

    View Slide

  16. Quando eu devo
    Refatorar?

    View Slide

  17. ü Você deve refatorar quando vê um código feio. Mas um código excelente
    também precisa de muitas refatorações.
    ü Sempre que adicionar uma funcionalidade ou correção parecer levar mais
    tempo do que deveria.
    Dica: para cada nova funcionalidade ou correção:
    - Faça com que a alteração seja mais simples de ser adicionada.
    - Faça essa alteração mais simples.
    QUANDO EU DEVO REFATORAR?

    View Slide

  18. ü Code-review é um bom momento para pensar em refatorações.
    Dica: Teste, Teste e Teste novamente!
    Os testes automatizados vão dar mais segurança na hora da refatoração.
    QUANDO EU DEVO REFATORAR?

    View Slide

  19. ü Se o código não vai receber nenhuma
    funcionalidade nova ou correção.
    ü Se a alteração for tão simples, que refatorar
    levaria mais tempo.
    ü As vezes, pode levar mais tempo refatorar do
    que fazer do zero.
    E QUANDO NÃO REFATORAR?

    View Slide

  20. ü Nome misterioso;
    ü Código duplicado e Código morto;
    ü Classes, funções ou métodos muito longos;
    ü Lista longa de parâmetros;
    ü Obsessão por primitivos;
    ü Agrupamento de dados.
    Code smells

    View Slide

  21. ü Geralmente está mascarando um mal
    cheiro, como um desodorante
    mesmo!
    ü São usados quando algo no código não
    está tão claro.
    ü Comentários mentem!
    Comentários

    View Slide

  22. Principais Técnicas

    View Slide

  23. Nome misterioso

    View Slide

  24. Nome misterioso
    Rename Function
    (Renomear Função)

    View Slide

  25. Lista longa de parâmetros

    View Slide

  26. Lista longa de parâmetros
    Preserve Whole Object
    (Preservar Objeto Inteiro)

    View Slide

  27. Classe longa

    View Slide

  28. Classe longa
    Extract Class
    (Extrair Classe)

    View Slide

  29. Função longa

    View Slide

  30. Função longa
    Extract Function
    (Extrair Função)

    View Slide

  31. Código morto
    IDEs e Linters
    podem ajudar

    View Slide

  32. Agrupamento de dados

    View Slide

  33. Agrupamento de dados
    Extract Class
    (Extrair Classe)

    View Slide

  34. Código duplicado

    View Slide

  35. Código duplicado Extract Function
    (Extrair Função)

    View Slide

  36. Obsessão por primitivos

    View Slide

  37. Extract Class
    (Extrair Classe)
    Obsessão por primitivos

    View Slide

  38. Conclusão

    View Slide

  39. ü Única certeza que temos é que o nosso software vai mudar.
    ü Escrevemos código para pessoas e não para máquinas.
    ü Com o hábito de refatorar, ganhamos agilidade para adicionar novas
    funcionalidades ou correções de bugs.
    ü Testes unitários nos dão mais segurança na hora de refatorar.
    Conclusão

    View Slide

  40. ü Refactoring (Refatoração);
    ü Clean Code (Código limpo);
    ü Clean Architecture (Arquitetura limpa);
    ü Design Patterns (Padrões de projeto).
    Para aprender mais

    View Slide

  41. Obrigado!

    View Slide