O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!

Post on 08-Feb-2017

108 views 5 download

Transcript of O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede!

O seu código fede e você nem sabia. Ou sabia, mas não o

quanto fede!

Wagner Mendes Voltz - FUSCA

Agenda

• Apresentação• Definição dívida técnica• Definição code smells• Como identificar• Como prevenir• Como corrigir

Apresentação

• Curitibano e paranista!• Formado em Tecnologia em Informática –

UFPR – 2005• Especialização em Gestão da informação

– FAE Business School• Desenvolvedor de sistemas desde 2005• Java, Android, Agile• CSM – Certified ScrumMaster

• Atualmente gerente de projetos/scrum master

• twitter.com/tiofusca• wagnerfusca@gmail.com• http://www.devparana.org/

Dívida técnica

Toda e qualquer alteração no código fonte, realizada por um time de desenvolvimento de software que não gera melhoria em sua qualidade

Dívida técnica

“entrar num ambiente sujo e deixá-lo do mesmo jeito ou pior”

Dívida técnica

Ao manter o “ambiente sujo”, acúmulo juros.

Dívida técnica“A dívida técnica é similar à dívida financeira. Assim como

a dívida financeira, a dívida técnica exige o pagamento de juros. Estes vem na forma de esforço extra, que

devem ser pagos em desenvolvimentos futuros por conta da escolha de um design mais rápido e de baixa

qualidade. Nós podemos optar por continuar pagando estes juros ou

quitar de uma vez a dívida fazendo uma refatoração, transformando um design de baixa qualidade em um

design melhor. Apesar dos custos para saldar a dívida, ganhamos reduzindo os juros no futuro.”

Martin Fowler

Uma pausa

Refatorar não é corrigir bug!!!!

Divida técnica - sintomas

• Perda de satisfação do cliente quanto a primeira entrega

• Demora para entregar o software• Atrasos nas entregas• Erros de estimativas com frequência• Entrega de software com bug em

produção

Divida técnica - sintomas

• Projeto engessado• Time frustrado• Cobertura de testes fraca• Suíte de testes que demora para ser

executada• //TODO E //FIXME• Problemas de comunicação na equipe

Code Smells

Definição: sintoma de que algo no código pode estar errado.

Geralmente indica a necessidade de um refactoring ou de alteração estrutural da aplicação.

Exemplo de codes smells

• Comentários• Método longo• Classe longa• Longa lista de parâmetros• Código duplicado• Complexidade condicional• Nomes inconsistentes• Obsessão primitiva

Como medir ?

SonarQube

http://www.sonarqube.org/

Dois indicadores simples

• Complexidade ciclomática (condicional)– mede a quantidade de caminhos de execução

independentes a partir de um código fonte • NCSS

– Determina o numero de linhas que um método deve ter

Dinâmica do dois chapéus: Kent Beck

Adicionar FuncionalidadeNão altera código pré existente

RefatorarNão acrescenta funcionalidade

Dúvidas?

• twitter.com/tiofusca• wagnerfusca@gmail.com• http://www.devparana.org/