4. O que é?
• Processo de alteração de um sistema de
software de modo que o comportamento
externo não mude, mas que sua estrutura
interna seja melhorada.
8. Refatoração
• Espere! Não é bem assim. Tem um detalhe...
• O sistema deve estar funcionando antes de
refatorar!
9. Refatoração
• Espere! Não é bem assim. Tem um detalhe...
• O sistema deve estar funcionando antes de
refatorar!
• Evite refatorar o código perto do prazo final.
10. Refatoração
• Espere! Não é bem assim. Tem um detalhe...
• O sistema deve estar funcionando antes de
refatorar!
• Evite refatorar o código perto do prazo final.
• Se tiver tudo cagado, as vezes é melhor fazer
um novo sistema ;)
24. Exemplos de Bad Smells
• Duplicated Code (Código Duplicado)
• Long Method (Método Longo)
• Large Class (Classe Grande)
• Comments (Comentários)
• Long Parameter List (Lista de Parâmetros Longa)
27. Formato do Catalogo
• Nome da refatoração.
• Resumo da situação na qual ela é necessária e
o que ela faz.
• Motivação para usá-la (e quando não usá-la).
• Mecânica. descrição passo a passo.
• Exemplos para ilustrar o uso.
42. Resumo
• Usar catalogo sistematicamente.
• Refatorar auxilia a manter o código legível e
modificável.
• Um código legível e modificavel é mais fácil de
ser mantido.
[DAVI/KINA] Trabalhamos neste material sobre refatoração Fico muito feliz de ter ficado entre os mais procurados;.... Trata-se de um assunto importante e que deve estar no dia dia do dev. QUALIDADE qualidade do código facilidade de entendimento, consequentemente facilita a manutenção Teste para ver se o tamanho do texto está bom para ler. Bla bla bla bala; Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer urna nibh, accumsan ut ultrices nec, ullamcorper eget metus. Suspendisse commodo est vel augue tempor eu fringilla dui scelerisque. Sed ut magna orci. Aliquam erat volutpat. Nunc sed arcu feugiat elit laoreet pretium. Nullam nibh enim, fringilla sed molestie eu, ultrices a magna. Donec sit amet pretium dolor. Donec eget nisl orci, et auctor erat. Nunc eget sapien id urna facilis
[DAVI/KINA] Formação Na ACCMM desde
DAVI É simples,
KINA Já que muda só internamente e não afeta nada!
KINA Vamos refatorar todo o código!
KINA
KINA Para refatorar é preciso que o código funcione a maior parte do tempo. Não faz sentido melhorar o entendimento do código que não está certo! Falar do exemplo do parede com infiltração.
DAVI Afinal, você está mudando o funcionamento interno. Se for algo de uma estrutura básica do sistema, pode acabar não dando tempo de testar cenários críticos.
KINA LEMBRAR QUE A REFATORAÇÃO DEVE SER FEITA PREFERENCIALMENTE EM PEQUENAS RAJADAS E DURANTE O DESENVOLVIMENTO
DAVI – PERGUNTAR PARA O KINA Como garantir de forma fácil que não está afetando o restante do código.
KINA Existindo testes automáticos aumenta muito a probabilidade de não aparecer bugs. Dá mais segurança para fazer as alterações.
DAVI – QUESTIONANDO O PESSOAL?
KINA Quanto tempo você perde para garantir que a sua alteração tá funcionando? Falar de um exemplo simples (login, preparar cenário, etc.)
DAVI Os testes automatizados não são pré-requisitos Só aumenta trabalho para garantir que o sistema manteve o comportamento após a refatoração Ou seja, você terá que garantir manualmente :P
DAVI
KINA
KINA
KINA
Como?!?!? Sim... Pois é não existe uma forma sistemica que descreva que algo é ruim ou não, pois depende do contexto. E o “olhar humano” é muito mais eficiente. Pelo menos por enquanto :D
Normalmente é quando você olha o código e tem a essa reação...
DAVI Codigo duplicado: numero um do ranking das não conformidades Metodo longo: exemplo empresa de TV por assinatura
KINA Apesar dos mau cheiros não serem sistemicamente “cheiraveis”, a sua solução é. Perguntar quem trabalha com Java/.net, usou Eclipse/NetBeans/IntelliJ/VS Studio Release Eclipse 2.1 ano de 2003 VS desde 2005 tem. No 2003 vc tem plugins.
DAVI Falar sobre o catalogo disponivel nos livros e site.
DAVI Catalogo do livro segue este padrão, e tbem no site
DAVI Há casos que até uma linha de código compensa extrair Mau cheiro: código comentado A ideia é que um metodo tenha apenas um objetivo
DAVI
DAVI
KINA
KINA
DAVI
DAVI
KINA DAVI: Converter projeto procedural em Objetos
Perguntar quantos sistemas sem nenhuma manutenção e que estão em produção vcs conhecem.
KINA Se não cuidar pode:
Aparecer bugs
Pode ser descontinuado, ou seja, morrer.
Ficar torto, e uma vez torto é muito dificil arrumar tudo.
Pode chegar um nível que você não consiga dar manutenção no sistema sem que gaste muito tempo.