SlideShare uma empresa Scribd logo
1 de 26
Brandão… egomesbrandao
 36 anos
 Desenvolvedor de software
 www.egomesbrandao.com.br
 twitter.com/egomesbrandao
 linkedin.com/in/egomesbrandao
 github.com/egomesbrandao
 pt.stackoverflow.com/users/14094/egomesbrandao
 speakerdeck.com/egomesbrandao
 Xbox live: egomesbrandao
Saia do Brownfield
Com Refactoring
Greenfield
Brownfield
Pareto
Você cozinha?
Conseguiria aqui?
M. Golding
“Always code as if the guy
who ends up maintaining
your code will be a violent
psychopath who knows
where you live”
A janela quebrada
Você sentiu... Code Smell?
Refactoring
Explore com testes
Feathers
e o risco da mudança:
Quais as mudanças que temos que
fazer?
Como vamos saber que fizemos
corretamente?
E como vamos saber se não
quebramos nada?
Grace Hopper
“It’s easier to beg
forgiveness than to
ask permission.”,
Grace Hopper
Medo?
"Humans are allergic to
change. They love to say,
'We've always done it this
way.' I try to fight that. That's
why I have a clock on my wall
that runs counter-clockwise.",
Grace Hopper
Para saber mais
Mais?
 www.egomesbrandao.com.br
 twitter.com/egomesbrandao
 linkedin.com/in/egomesbrandao
 github.com/egomesbrandao
 pt.stackoverflow.com/users/14094/egomesbrandao
 speakerdeck.com/egomesbrandao
 Xbox live: egomesbrandao
Obrigado!

Mais conteúdo relacionado

Mais de Emmanuel Gomes Brandão

Mais de Emmanuel Gomes Brandão (14)

VS2019 Launch - VS com DevOps
VS2019 Launch - VS com DevOpsVS2019 Launch - VS com DevOps
VS2019 Launch - VS com DevOps
 
DevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOpsDevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOps
 
DevOps para Enterprises
DevOps para EnterprisesDevOps para Enterprises
DevOps para Enterprises
 
7Masters - Automação de testes
7Masters - Automação de testes7Masters - Automação de testes
7Masters - Automação de testes
 
DevOps em Enterprises: problemas
DevOps em Enterprises: problemasDevOps em Enterprises: problemas
DevOps em Enterprises: problemas
 
Jornada para o DevOps
Jornada para o DevOpsJornada para o DevOps
Jornada para o DevOps
 
Three ways a base do DevOps no VSTS
Three ways a base do DevOps no VSTSThree ways a base do DevOps no VSTS
Three ways a base do DevOps no VSTS
 
DevOps: Muito mais cultura do que ferramentas
DevOps: Muito mais cultura do que ferramentasDevOps: Muito mais cultura do que ferramentas
DevOps: Muito mais cultura do que ferramentas
 
DevOps Mitos, Cultura e Futuro
DevOps Mitos, Cultura e FuturoDevOps Mitos, Cultura e Futuro
DevOps Mitos, Cultura e Futuro
 
DevOps (Provocações)
DevOps (Provocações)DevOps (Provocações)
DevOps (Provocações)
 
Git Rebase, reescrevendo o seu histórico
Git Rebase, reescrevendo o seu históricoGit Rebase, reescrevendo o seu histórico
Git Rebase, reescrevendo o seu histórico
 
Integrando Jenkins em um pipeline com VSTS... e Azure
Integrando Jenkins em um pipeline com VSTS... e AzureIntegrando Jenkins em um pipeline com VSTS... e Azure
Integrando Jenkins em um pipeline com VSTS... e Azure
 
Brownfield applications: dicas, técnicas e experiências
Brownfield applications: dicas, técnicas e experiênciasBrownfield applications: dicas, técnicas e experiências
Brownfield applications: dicas, técnicas e experiências
 
MS Enterprise Library
MS Enterprise LibraryMS Enterprise Library
MS Enterprise Library
 

Desenvolvedor software 36 anos sites redes sociais apresentação

Notas do Editor

  1. Você vai estar 80% da sua vida profissional em softwares existentes Baseado nas estimativas do Gartner 80% do tempo em código Brownfield
  2. Você já sentiu vontade de torcer o pescoço de um colega que talvez você nem saiba quem é? Pode ter sido seu atual chefe quando era dev que codificou isso
  3. The Tipping Point by Malcolm Gladwell
  4. Divergent change: a classe é alterada de diferentes formas, fazendo coisas demais, extraia uma ou mais classes Shotgun surgery: é preciso fazer diversas alterações para uma única mudança, o que sugere que a lógica está espalhada pelo código, encapsule em uma classe Feature envy: um método está mais interessado em em dados de outra classe do que na própria classe, extraia e mova Data clumps: grupos de dados, vários parâmetros que aparecem sempre juntos: objeto de parâmetros Primitive obsession: números de telefone ou CEP Switch statements: quase sempre substituível por polimorfismo Lazy class: classe perdida Speculative: provável funcinalidade algum dia (falar do campo genérico do banco de dados que acomoda vários campos) Temporary Field
  5. É um processo de mudança no código de um software de uma forma que não altere o comportamento Se você não sabia o que é, você já fez Refactoring sem perceber, ao alterar o nome de uma variável para melhorar a legibilidade do código,
  6. Objetivo é reduzier o acoplamento não essencial, sempre haverá acoplamento! Use interface, desenvolva para o comportamento não para a implementação
  7. Medo da mudança “Se não está quebrado não conserte” Não sabe como, então copia, cola e crie um novo com outro nome Você fica o tempo todo tentando evitar o problema, fugindo dele... Só que fazer vai melhorar seu conhecimento, auto-estima do time, e principalmente o seu futuro trabalho
  8. Philip Laureano - A Better Way To Learn Refactoring