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

22
O seu código fede e você nem sabia. Ou sabia, mas não o quanto fede! Wagner Mendes Voltz - FUSCA

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

Page 1: 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

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

Agenda

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

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

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

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

• Atualmente gerente de projetos/scrum master

• twitter.com/tiofusca• [email protected]• http://www.devparana.org/

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

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

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

Dívida técnica

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

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

Dívida técnica

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

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

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

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

Uma pausa

Refatorar não é corrigir bug!!!!

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

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

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

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

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

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.

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

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

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

Como medir ?

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

SonarQube

http://www.sonarqube.org/

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

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

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

Dinâmica do dois chapéus: Kent Beck

Adicionar FuncionalidadeNão altera código pré existente

RefatorarNão acrescenta funcionalidade

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

Dúvidas?

• twitter.com/tiofusca• [email protected]• http://www.devparana.org/