Slide 1

Slide 1 text

Transformando o caos em clareza: CARINE BERTAGNOLLI MÔNICA RIBEIRO o poder da refatoração

Slide 2

Slide 2 text

classe com mais de mil linhas. checklist do caos

Slide 3

Slide 3 text

classe com mais de mil linhas. checklist do caos métodos tão grandes que não cabem numa tela.

Slide 4

Slide 4 text

classe com mais de mil linhas. checklist do caos métodos tão grandes que não cabem numa tela. alterar um código que não tem testes unitários.

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

refatoração

Slide 7

Slide 7 text

Hello world :) Carine Bertagnolli Backend Dev @ Zup Mônica Ribeiro Backend Dev Specialist @ Zup

Slide 8

Slide 8 text

Agenda O que REALMENTE é a refatoração? Como identificar códigos problemáticos? INTRODUÇÃO HANDS ON! RESUMÃO Que os Deuses da demo estejam ao nosso favor! Sugestão de ferramentas, livros e boas práticas. Quais são as técnicas PRÁTICAS que facilitam a refatoração? PRINCÍPIOS E TÉCNICAS

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

corrigir bugs o que não é

Slide 11

Slide 11 text

adicionar novas features o que não é

Slide 12

Slide 12 text

uma tarefa especial no backlog o que não é

Slide 13

Slide 13 text

reestruturar um código já existente sem alterar o seu comportamento externo. o que é Martin Fowler

Slide 14

Slide 14 text

como identificar códigos problemáticos? variáveis com nomes sem significados métodos tão grandes que não cabem na tela mais de uma responsabilidade em métodos/classes. classes sem testes unitários MUITOS comentários para explicar o código muita dependência com agentes externos nome dos métodos não dizem o que ele faz.

Slide 15

Slide 15 text

quando refatorar? ao adicionar uma nova funcionalidade ao corrigir um bug durante um code review durante um pair programming

Slide 16

Slide 16 text

quais técnicas podem ajudar? Ok, mas durante a refatoração,

Slide 17

Slide 17 text

preservação do comportamento; busca por código mais legível e sustentável. Princípio

Slide 18

Slide 18 text

renomear métodos

Slide 19

Slide 19 text

renomear métodos

Slide 20

Slide 20 text

extração de métodos

Slide 21

Slide 21 text

extração de métodos

Slide 22

Slide 22 text

consolidar condições

Slide 23

Slide 23 text

consolidar condições

Slide 24

Slide 24 text

pull up field

Slide 25

Slide 25 text

push down field

Slide 26

Slide 26 text

SOLID DRY KISS TROCAR COMENTÁRIOS POR CÓDIGOS AUTOEXPLICATIVOS

Slide 27

Slide 27 text

uma vasta lista de técnicas!

Slide 28

Slide 28 text

hands on! que os Deuses do hands on estejam ao nosso favor! identificar refatorar!

Slide 29

Slide 29 text

Projeto de Refatoração

Slide 30

Slide 30 text

pontos de atenção QUEBRAS DE FUNCIONALIDADE DESVIO DO ESCOPO PROBLEMAS DE DESEMPENHO FALHAS NOS TESTES Se a refatoração não for feita com cuidado, pode causar quebras de funcionalidade no código. Se não for bem gerenciada, pode levar a desvios do escopo original do projeto, afetando os cronogramas e os objetivos. Alterações de código sem planejamento podem impactar o desempenho de maneiras não previstas. Se a refatoração não for devidamente testada, os testes podem não detectar problemas introduzidos, resultando em erros em produção.

Slide 31

Slide 31 text

IDEs ao nosso favor existem MUITOS recursos nas IDEs que facilitam a rotina de refatoração

Slide 32

Slide 32 text

Uma ótima referência sobre o assunto

Slide 33

Slide 33 text

obrigada! Carine Bertagnolli Backend Dev @ Zup Mônica Ribeiro Backend Dev Specialist @ Zup

Slide 34

Slide 34 text

Obrigada pelo seu tempo Nos vemos em breve! :) Trilha Microsservices (14:10 às 14:45) Além do olho mágico: monitorando a integridade dos microsserviços com o OpenTelemetry Trilha Arquitetura Java (17:15 às 17:50) Decisões arquiteturais: o que se encaixa no meu projeto?