Este trabalho aborda a ciência do Código Limpo através de algumas de suas técnicas, tais como nomes significativos, príncipios SOLID e testes unitários, enfatizando por meio de exemplos a importância da aplicação do Código Limpo com a finalidade de se obter um sistema robusto com poucos erros e alta manutenibilidade. Destaca-se ainda o quanto um código ruim pode custar às empresas e diminuir drasticamente a produtividade dos desenvolvedores. Recorrendo a um pequeno experimento, o referido estudo também analisa estatisticamente as vantagens do Código Limpo comparado a um código convencional
1. Dezembro/2012
A Importância do Código Limpo na
Perspectiva dos Desenvolvedores e
Empresas de Software
Aluno: Joberto Diniz Junior
Orientador: Dr. Djalma Domingos da Silva
2. Roteiro
1. Introdução
2. Fundamentação Teórica
3. Métodos
4. Resultado e Discussão
5. Conclusão
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
2
3. 1. Introdução
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
3
Por que essa estrutura
está aqui?
Para onde será que essa
ponte leva?
Essa placa não me ajuda
muito.
//Esta é a ponte
4. 1.1 Justificativa
Desenvolvedores
“Escrever código limpo é o que você deve fazer a fim de se intitular
um profissional. Não há nenhuma desculpa razoável para fazer nada
menos que o seu melhor” (Martin, 2009)
Empresas
Melhor qualidade de código
Diminuição de bugs
Manutenção eficiente e rápida
Menores custos
Clientes mais satisfeitos
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
4
6. 1.2 Problema
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
6
Encontrando o nosso
caminho através do código
ruim
7. 1.3 Objetivo
Mostrar as técnicas do Código Limpo
Mostrar as vantagens do Código Limpo
Através
• Experimento
• Análise Estatística
Analisando Métricas
• Tempo gasto
• Quantidade de linhas
• Índice de manutenibilidade
• Complexidade ciclomática
Questionário
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
7
8. 2.1 Código ruim custa caro
Menor produtividade = gerência
adicionando mais membros = maior custo
Pode levar a falência
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
8
9. 2.2 O que é Código Limpo?
“Escrever um código limpo exige o uso
disciplinado de uma miríade de pequenas
técnicas aplicadas por meio de uma
sensibilidade meticulosamente adquirida
sobre “limpeza”. A “sensibilidade ao
código” é o segredo. Alguns de nós já
nascemos com ela. Outros precisam se
esforçar para adquiri-la.” (Martin, 2008)
Um código limpo sempre parece que foi
escrito por alguém que se
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
9
importava
10. 2.3 Nomes significativos
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
10
Evitar abreviaturas
Usar nomes do domínio do problema
Renomear / Refatorar
Evitar números e strings “mágicas”
Criar constantes
11. 2.4 SOLID
Princípio da Responsabilidade Única
Princípio Aberto-Fechado
Princípio da Substituição de Liskov
Princípio da Segregação de Interface
Princípio da Inversão de Dependência
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
11
12. 2.5 Referência nula
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
12
Charles Hoare
Meu erro de
bilhões de dólares
Utilizar padrão de
projeto Objeto
Nulo
13. 2.6 Testes unitários
Uma forma de documentação
Impacto na Arquitetura e Design do
sistema
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
13
15. 4.1 Manutenibilidade
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
15
Lim
po
C
onvencional
0
25
50
75
100
0,036
Indice de manutenibilidade
Media(desvio-padrão)
16. 4.2 Tempo
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
16
Lim
po
C
onvencional
0
25
50
75
100
0,019
Tempo
Minutos
Media(desvio-padrão)
17. 4.3 Quantidade de linhas
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
17
Lim
po
C
onvencional
0
25
50
75
100
0,001
Linhas de código
Media(desvio-padrão)
18. 4.4 Características Subjetivas
Facilidade de leitura do código
Facilidade para adição de nova
funcionalidade
Tamanho de classes e métodos
Comentários ajudam?
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
18
19. 5. Conclusão
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
19
Treinamento Empresarial
Treinamento Individual