Os benefícios da
REFATORAÇÃO
de código
EMBELEZANDO O CÓDIGO
PAULA
sudo:~$ whoami -Engenharia Framework
- 1 ano de Itaú
-Arquitetura de Soluções
-2008 - Etec
-Professora, suporte.
-2014 Programadora Java
-Formação em Gestão em Logística
-Comunidades SouJava, Devs JavaGirl e
MNTBS
-MVP Java América Latina
-Escritora DevIniciative e Medium
-Palestrante
15 DE AGOSTO
XCONF
MARTIN FOWLER
Sobre
-Inglês
-Mora nos EUA - Subúrbio de Boston
-University College London - Engenharia Eletrônica e Ciência da Computação
-Autor
-Palestrante
-Aplicações Corporativas, Arquitetura de Software
-ThoughtWorks - desde 2000
-Um dos 17 autores do Manifesto Ágil (https://www.manifestoagil.com.br/)
SISTEMA DE
LOCADORA
Java
GERENCIADOR DE PEÇAS
TEATRAIS
17 NOVAS TÉCNICAS
Java Script
Ed.1 Ed.2
REFATORAÇÃO
O que é
A refatoração é uma técnica para reestruturar um corpo de código
existente, alterando sua estrutura interna sem alterar seu
comportamento externo.
SABER
O que você deve
Cada Refatoração faz
pouco, mas a sequência
dessas transformações
pode produzir uma
reestruturação
significativa.
SABER
O que você deve
Quanto mais complicada a
situação, menores os passos.
Como cada refatoração é
pequena, é menos provável
que dê errado.
NÃO LIGA SE O CÓDIGO É FEIO
O compilador
Por que precisamos fazer um código que seja legível?
Legível pra quem ?
"Qualquer tolo pode escrever código
que um computador possa entender.
Bons programadores escrevem
código que os humanos podem
entender."
by Martin Fowler
Os benefícios da
REFATORAÇÃO
de código
EMBELEZANDO O CÓDIGO
DESIGN,
ORGANIZAÇÃO...
TESTES
TESTES
Totalmente automáticos e que verificam seus próprios resultados.
Executar testes com freqüência.
Executar teste que exercitam o código no qual você está trabalhando pelo
menos a cada poucos minutos;
Execute todos os testes pelo menos diariamente.
Refatoração também deve ser aplicada nos testes quando necessário.
Testes devem ser claros.
Quantidade != Qualidade
UM BOM TESTE DE CÓDIGO
DEVE SER FÁCIL DE SER
ALTERADO.
QUANDO VOCÊ PRECISAR ADICIONAR
UM RECURSO A UM PROGRAMA, MAS O
CÓDIGO NÃO ESTIVER ESTRUTURADO
DE MANEIRA CONVENIENTE, REFATORE O
PROGRAMA PARA FACILITAR A ADIÇÃO
DO RECURSO E, EM SEGUIDA, ADICIONE
O RECURSO.
REFATORAÇÃO MELHORA O
DESIGN DO SOFTWARE
A REFATORAÇÃO TORNA
O SOFTWARE MAIS FÁCIL
DE ENTENDER
A REFATORAÇÃO AJUDA A
ENCONTRAR BUGS
A REFATORAÇÃO ME AJUDA A
PROGRAMAR MAIS
RAPIDAMENTE
REFATORAÇÃO
Tipos
REFATORAÇÃO DE COMPREENSÃO:
TORNANDO O CÓDIGO MAIS FÁCIL
DE ENTENDER
REFATORAÇÃO DE
COLETA DE LIXO
REFATORAÇÃO PLANEJADA
E OPORTUNISTA OU A
LONGO PRAZO
SE FEDE,
MUDE
Código duplicado
Função ou Método Longo
Lista longa de parâmetros
Dados Globais
Dados Mutáveis
Mudança Divergente
Cirurgia por espingarda
Inveja do Recurso
Agrupamento de Dados
Obsessão Primitiva
Switches Repetidos
Loops
Classe grande
COMENTÁRIOS
/**Quando você sentir necessidade de
escrever um comentário, primeiro tente
refatorar o código para que qualquer
comentário se torne supérfluo.**/
POR ONDE COMEÇAR
Extrair Função
Extrair Variável
Função Inline
Variável Inline
Alterar Declaração de Função
Renomear variável
Encapsular Variável
Introduzir Objeto de Parâmetro
Combinar Funções na Classe
Combine Functions into Transform
Fase dividida
EXTRAIR FUNÇÃO
SEPARAÇÃO ENTRE INTENÇÃO E
IMPLEMENTAÇÃO.
NO O QUÊ, NÃO NO COMO
AS FUNÇÕES NÃO DEVEM SER MAIORES DO
QUE CABEM NA TELA.
QUALQUER CÓDIGO USADO MAIS DE UMA VEZ
DEVE SER COLOCADO EM SUA PRÓPRIA FUNÇÃO
A OTIMIZAÇÃO DE COMPILADORES GERALMENTE FUNCIONA
MELHOR COM FUNÇÕES MAIS CURTAS, QUE PODEM SER
ARMAZENADAS EM CACHE COM MAIS FACILIDADE..
PEQUENAS FUNÇÕES FUNCIONAM APENAS
SE OS NOMES FOREM BONS
EXTRAIR VARIÁVEL
VARIÁVEIS LOCAIS PODEM AJUDAR A DIVIDIR A
EXPRESSÃO EM ALGO MAIS GERENCIÁVEL
PERMITE ENTENDER MELHOR O PROPÓSITO DO QUE ESTÁ
ACONTECENDO.
FACILITA PARA DEPURAÇÃO
FUNÇÃO INLINE
O NOME NÃO SE COMUNICA MAIS DO
QUE A PRÓPRIA EXPRESSÃO.
EXEMPLO
Gerenciador de uma companhia
de atores teatrais que
participam de vários eventos
apresentando peças teatrais.
ALTERAÇÃO NO
FORMATO DA FATURA
PARA HTML
Exemplo
ANTES DE INICIAR A REFATORAÇÃO,
VERIFIQUE SE VOCÊ TEM UM
CONJUNTO SÓLIDO DE TESTES.
ESSES TESTES DEVEM SER
VERIFICADOS AUTOMATICAMENTE.
ANTES DE INICIAR A REFATORAÇÃO,
VERIFIQUE SE VOCÊ TEM UM
CONJUNTO SÓLIDO DE TESTES.
ESSES TESTES DEVEM SER
VERIFICADOS AUTOMATICAMENTE.
AO PROGRAMAR, SIGA A REGRA DE ACAMPAMENTO:
SEMPRE DEIXE A BASE DE CÓDIGO MAIS SAUDÁVEL DO
QUE QUANDO A ENCONTROU..
OBRIGADA!
@psanrosa13
@soujava
@devsjavagirl
Sobre pontos citados na Palestra :
Site onde vocês podem criar uma conta de teste para ler
vários livros legais, lá tem todo conteúdo mais avançado!
https://learning.oreilly.com/home/
Fonte da palestra :
https://refactoring.com/
Link para vocês baixarem o primeiro capítulo do livro grátis:
https://www.thoughtworks.com/pt/books

Refatoracao de codigo

  • 1.
    Os benefícios da REFATORAÇÃO decódigo EMBELEZANDO O CÓDIGO
  • 2.
    PAULA sudo:~$ whoami -EngenhariaFramework - 1 ano de Itaú -Arquitetura de Soluções -2008 - Etec -Professora, suporte. -2014 Programadora Java -Formação em Gestão em Logística -Comunidades SouJava, Devs JavaGirl e MNTBS -MVP Java América Latina -Escritora DevIniciative e Medium -Palestrante
  • 3.
  • 4.
    MARTIN FOWLER Sobre -Inglês -Mora nosEUA - Subúrbio de Boston -University College London - Engenharia Eletrônica e Ciência da Computação -Autor -Palestrante -Aplicações Corporativas, Arquitetura de Software -ThoughtWorks - desde 2000 -Um dos 17 autores do Manifesto Ágil (https://www.manifestoagil.com.br/)
  • 6.
    SISTEMA DE LOCADORA Java GERENCIADOR DEPEÇAS TEATRAIS 17 NOVAS TÉCNICAS Java Script Ed.1 Ed.2
  • 7.
    REFATORAÇÃO O que é Arefatoração é uma técnica para reestruturar um corpo de código existente, alterando sua estrutura interna sem alterar seu comportamento externo.
  • 8.
    SABER O que vocêdeve Cada Refatoração faz pouco, mas a sequência dessas transformações pode produzir uma reestruturação significativa.
  • 9.
    SABER O que vocêdeve Quanto mais complicada a situação, menores os passos. Como cada refatoração é pequena, é menos provável que dê errado.
  • 10.
    NÃO LIGA SEO CÓDIGO É FEIO O compilador Por que precisamos fazer um código que seja legível? Legível pra quem ?
  • 11.
    "Qualquer tolo podeescrever código que um computador possa entender. Bons programadores escrevem código que os humanos podem entender." by Martin Fowler
  • 12.
    Os benefícios da REFATORAÇÃO decódigo EMBELEZANDO O CÓDIGO DESIGN, ORGANIZAÇÃO...
  • 13.
  • 14.
    TESTES Totalmente automáticos eque verificam seus próprios resultados. Executar testes com freqüência. Executar teste que exercitam o código no qual você está trabalhando pelo menos a cada poucos minutos; Execute todos os testes pelo menos diariamente. Refatoração também deve ser aplicada nos testes quando necessário. Testes devem ser claros. Quantidade != Qualidade
  • 15.
    UM BOM TESTEDE CÓDIGO DEVE SER FÁCIL DE SER ALTERADO.
  • 16.
    QUANDO VOCÊ PRECISARADICIONAR UM RECURSO A UM PROGRAMA, MAS O CÓDIGO NÃO ESTIVER ESTRUTURADO DE MANEIRA CONVENIENTE, REFATORE O PROGRAMA PARA FACILITAR A ADIÇÃO DO RECURSO E, EM SEGUIDA, ADICIONE O RECURSO.
  • 17.
  • 18.
    A REFATORAÇÃO TORNA OSOFTWARE MAIS FÁCIL DE ENTENDER
  • 19.
    A REFATORAÇÃO AJUDAA ENCONTRAR BUGS
  • 20.
    A REFATORAÇÃO MEAJUDA A PROGRAMAR MAIS RAPIDAMENTE
  • 21.
  • 22.
    REFATORAÇÃO DE COMPREENSÃO: TORNANDOO CÓDIGO MAIS FÁCIL DE ENTENDER
  • 23.
  • 24.
  • 25.
    SE FEDE, MUDE Código duplicado Funçãoou Método Longo Lista longa de parâmetros Dados Globais Dados Mutáveis Mudança Divergente Cirurgia por espingarda Inveja do Recurso Agrupamento de Dados Obsessão Primitiva Switches Repetidos Loops Classe grande
  • 26.
    COMENTÁRIOS /**Quando você sentirnecessidade de escrever um comentário, primeiro tente refatorar o código para que qualquer comentário se torne supérfluo.**/
  • 27.
    POR ONDE COMEÇAR ExtrairFunção Extrair Variável Função Inline Variável Inline Alterar Declaração de Função Renomear variável Encapsular Variável Introduzir Objeto de Parâmetro Combinar Funções na Classe Combine Functions into Transform Fase dividida
  • 28.
  • 29.
    SEPARAÇÃO ENTRE INTENÇÃOE IMPLEMENTAÇÃO. NO O QUÊ, NÃO NO COMO AS FUNÇÕES NÃO DEVEM SER MAIORES DO QUE CABEM NA TELA. QUALQUER CÓDIGO USADO MAIS DE UMA VEZ DEVE SER COLOCADO EM SUA PRÓPRIA FUNÇÃO
  • 30.
    A OTIMIZAÇÃO DECOMPILADORES GERALMENTE FUNCIONA MELHOR COM FUNÇÕES MAIS CURTAS, QUE PODEM SER ARMAZENADAS EM CACHE COM MAIS FACILIDADE.. PEQUENAS FUNÇÕES FUNCIONAM APENAS SE OS NOMES FOREM BONS
  • 31.
  • 32.
    VARIÁVEIS LOCAIS PODEMAJUDAR A DIVIDIR A EXPRESSÃO EM ALGO MAIS GERENCIÁVEL PERMITE ENTENDER MELHOR O PROPÓSITO DO QUE ESTÁ ACONTECENDO. FACILITA PARA DEPURAÇÃO
  • 33.
    FUNÇÃO INLINE O NOMENÃO SE COMUNICA MAIS DO QUE A PRÓPRIA EXPRESSÃO.
  • 34.
    EXEMPLO Gerenciador de umacompanhia de atores teatrais que participam de vários eventos apresentando peças teatrais.
  • 35.
    ALTERAÇÃO NO FORMATO DAFATURA PARA HTML Exemplo
  • 36.
    ANTES DE INICIARA REFATORAÇÃO, VERIFIQUE SE VOCÊ TEM UM CONJUNTO SÓLIDO DE TESTES. ESSES TESTES DEVEM SER VERIFICADOS AUTOMATICAMENTE.
  • 37.
    ANTES DE INICIARA REFATORAÇÃO, VERIFIQUE SE VOCÊ TEM UM CONJUNTO SÓLIDO DE TESTES. ESSES TESTES DEVEM SER VERIFICADOS AUTOMATICAMENTE.
  • 39.
    AO PROGRAMAR, SIGAA REGRA DE ACAMPAMENTO: SEMPRE DEIXE A BASE DE CÓDIGO MAIS SAUDÁVEL DO QUE QUANDO A ENCONTROU..
  • 41.
  • 42.
    Sobre pontos citadosna Palestra : Site onde vocês podem criar uma conta de teste para ler vários livros legais, lá tem todo conteúdo mais avançado! https://learning.oreilly.com/home/ Fonte da palestra : https://refactoring.com/ Link para vocês baixarem o primeiro capítulo do livro grátis: https://www.thoughtworks.com/pt/books