Apresentação sobre code smells, dívida técnica, refatoração, métricas para qualidade de código fonte e sonar.
Apresentado na DB1 Informática e no Agile Tour Maringá (2013 - Ignite Talk)
Agilidade é para desenvolvedores? Semana da Agilidade
O seu código fede e você nem sabia
1. O seu código fede e você nem
sabia. Ou sabia, mas não sabia o
quanto fede
2. 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.
3. 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 frequencia
• Entrega de software com bug em
produção
4. Divida técnica - sintomas
• Projeto engessado
• Time frustrado
• Cobertura de testes fraca
• Suite de testes que demora para ser
executada
• //TODO E //FIXME
• Problemas de comunicação na equipe
5. 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
9. Dois indicadores simples
• Complexidade ciclomatica (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
metodo deve ter
10. • Dívida técnica
• Indice de qualidade do projeto
• Gráfico Toxicidade
• TimeLine
• Widget Lab
• Tabela de Métricas
• SCM Stats
11. • Posso vincular com o Eclipse
• Sugestão de leitura -
http://metrics.sourceforge.net/
12. Dinâmica do dois chapéus: Kent
Beck
Adicionar Funcionalidade
Não altera código pré existente
Refatorar
Não acrescenta funcionalidade