Your SlideShare is downloading. ×
Refatoração
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Refatoração

499
views

Published on

Apresentação feita no ACCMM TechDay

Apresentação feita no ACCMM TechDay


0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
499
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • [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.
  • DAVI
  • KINA
  • Transcript

    • 1. RefatoraçãoDavi Marques William “Kina”
    • 2. O que é?
    • 3. 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.
    • 4. Refatoração• Então....
    • 5. Refatoração• Então....
    • 6. Refatoração• Espere! Não é bem assim. Tem um detalhe...
    • 7. Refatoração• Espere! Não é bem assim. Tem um detalhe...• O sistema deve estar funcionando antes de refatorar!
    • 8. 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.
    • 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.• Se tiver tudo cagado, as vezes é melhor fazer um novo sistema ;)
    • 10. Refatoração• Como garantir que continua funcionando?
    • 11. Refatoração• Como garantir que continua funcionando?
    • 12. Refatoração• Mas testes automatizados não são custosos?!
    • 13. Refatoração• Mas testes automatizados não são custosos?!
    • 14. RefatoraçãoRefatoração X Testes Automatizados
    • 15. RefatoraçãoRefatoração X Testes Automatizados
    • 16. Refatoração• Quais os passos para refatorar?
    • 17. Refatoração• Quais os passos para refatorar?• Procure os “bad smells” (maus cheiros)
    • 18. Refatoração• Como eu encontro um bad smell?
    • 19. Refatoração• Como eu encontro um bad smell?• Não existe uma formula que diz que parte do código é um bad smell.
    • 20. Refatoração• Como eu encontro um bad smell?• Não existe uma formula que diz que parte do código é um bad smell.
    • 21. Refatoração• Resumindo...
    • 22. Refatoração• Resumindo...
    • 23. 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)
    • 24. Catalogo de Refatorações
    • 25. Catalogo de Refatoraçõeshttp://www.refactoring.com
    • 26. 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.
    • 27. Exemplos Refatorações• Extract Method (Extrair Método)• Pull Up Method (Subir Método na Hierarquia )• Substitute Algorithm (Substituir Algoritimo)• Replace Magic• Rename Method (Renomear Método)• Decompose Conditional (Decompor Condicional)
    • 28. Extract Method
    • 29. Extract Method
    • 30. Exemplos Refatorações• Extract Method (Extrair Método)• Pull Up Method (Subir Método na Hierarquia )• Substitute Algorithm (Substituir Algoritimo)• Replace Magic Number• Rename Method (Renomear Método)• Decompose Conditional (Decompor Condicional)
    • 31. Pull Up Method
    • 32. Exemplos Refatorações• Extract Method (Extrair Método)• Pull Up Method (Subir Método na Hierarquia )• Substitute Algorithm (Substituir Algoritimo)• Replace Magic Number• Rename Method (Renomear Método)• Decompose Conditional (Decompor Condicional)
    • 33. Substitute Algorithm
    • 34. Exemplos Refatorações• Extract Method (Extrair Método)• Pull Up Method (Subir Método na Hierarquia )• Substitute Algorithm (Substituir Algoritimo)• Replace Magic Number• Rename Method (Renomear Método)• Decompose Conditional (Decompor Condicional)
    • 35. Resumo
    • 36. Resumo• Um software é quase como um jardim.
    • 37. Resumo• Um software é quase como um jardim.
    • 38. Resumo• Um software é quase como um jardim.
    • 39. Resumo• Um software é quase como um jardim.
    • 40. Resumo• Um software é quase como um jardim.
    • 41. 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.
    • 42. Lembrete• Refatoração != refazer• Refatoração != corrigir• Refatoração != performance
    • 43. Perguntas?