Slide 1

Slide 1 text

Desmistificando a Refatoração

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Conhecendo o Grupo Boticário

Slide 5

Slide 5 text

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 ,

Slide 6

Slide 6 text

_ 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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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 ?

Slide 9

Slide 9 text

_ 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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Introdução à Refatoração

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

ü 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?

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Quando eu devo Refatorar?

Slide 17

Slide 17 text

ü 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?

Slide 18

Slide 18 text

ü 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?

Slide 19

Slide 19 text

ü 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?

Slide 20

Slide 20 text

ü 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

Slide 21

Slide 21 text

ü 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

Slide 22

Slide 22 text

Principais Técnicas

Slide 23

Slide 23 text

Nome misterioso

Slide 24

Slide 24 text

Nome misterioso Rename Function (Renomear Função)

Slide 25

Slide 25 text

Lista longa de parâmetros

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Classe longa

Slide 28

Slide 28 text

Classe longa Extract Class (Extrair Classe)

Slide 29

Slide 29 text

Função longa

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

Código morto IDEs e Linters podem ajudar

Slide 32

Slide 32 text

Agrupamento de dados

Slide 33

Slide 33 text

Agrupamento de dados Extract Class (Extrair Classe)

Slide 34

Slide 34 text

Código duplicado

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

Obsessão por primitivos

Slide 37

Slide 37 text

Extract Class (Extrair Classe) Obsessão por primitivos

Slide 38

Slide 38 text

Conclusão

Slide 39

Slide 39 text

ü Ú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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

Obrigado!