2. Sumário
1
2
3
4
5
6
7
8
9
10
A Regra do escoteiro
Como mensurar a
qualidade do seu código?
O que é um código sujo?
Nomenclaturas
Métodos
Parâmetros
Comentários
Formatação
Tratamento de erros
Teoria das janelas quebradas.
5. Código Limpo - Habilidades Práticas do Agile Software
(Robert C. Martin "Uncle Bob")
6. "Qualquer tolo pode escrever código que
um computador consiga entender. Bons
programadores escrevem código que
humanos consigam entender." - Martin
Fowler
7. 1 Teoria das janelas quebradas
freegoogleslidestemplates.com drauziovarella.com.br/drauzio/janelas-quebradas
8. 2 A Regra do escoteiro
freegoogleslidestemplates.com robsoncastilho.com.br/2010/12/03/limpe-seu-codigo/
10. 3
Como mensurar a qualidade do seu
código?
freegoogleslidestemplates.com
11.
12. 4 O que é um código sujo?
freegoogleslidestemplates.com
13. ● A lógica deve ser direta, para dificultar o encobrimento de bugs;
● Dependências mínimas;
● Tratamento de erro;
● O Código limpo, faz bem apenas uma coisa, executa apenas
uma tarefa.
Bjarne Stroustrup ( Pai do C++ )
14. ● O código limpo tem testes de uma forma geral, como unitários,
integração, aceitação etc.
● Nome significativos (nada de “int i;”);
● Poucas dependências e fazer apenas uma tarefa (como citado
por Bjarne);
Dave Tomas ( Criador do Eclipse )
16. Bizu #01 - Sempre que encontrar um nome ruim, mude-o;
Use o CTRL + ALT + R no eclipse para isso;
Bizu #02 - Dê nomes que tenham significados.
Nada de int i, String x, Date dmahmsegs;
17. Bizu #03 - Evite nomes com mais de um siginificado ou com duplo
sentido
String HP (empresa ou Hipotenusa? )
Bizu #04 - Evite nomes muito parecidos
XYZControllerForEfficientHandlingOfString
XYZControllerForEfficientStorageOfString
18. Bizu #05 - Dê nomes pronunciáveis
Date genymdhms
Date generationTimestamp
20. Bizu #06 - Métodos devem ser pequenos, de 20 a 30 linhas no máximo
Bizu #07 - Fazer apenas uma coisa, devem fazê-la bem, devem fazer
apenas ela. Use a extração de métodos, classes e
interfaces que as IDEs modernas possuem ( CTRL + 1 no
eclipse)
21. Bizu #08 - Evite muitos if e else, utilizar padrões de projeto que faça
abstração, como Chain of Responsability, Abstract, Factory, etc…
Bizu #09 - Os blocos if, else, while, switch/case devem conter, de
preferência, apenas uma linha, sendo ela uma chamada de função.
25. Bizu #13 - Não insira comentários em um código ruim, reescreva-o;
Bizu #14 - Comentários velhos são mentirosos, e o pai da mentira é o ….
Bizu #15 - Geralmente os comentários não são atualizados;
26. Bizu #16 - Código bom é auto-explicativo, não precisa de comentários
Bizu #17 - Ler um código bem escrito, é como ler uma bela poesia;
27. ● Legais (Direitos autorais)
● Explicativa. Tivemos que fazer isso por causa disso,
foi a melhor maneira que encontramos de fazer isso,
etc …
● Alerta sobre consequências. Não usar este teste porque ele
gera um relatório real;
● Comentários TODO
Comentários bons
28. ● Comentários Redundantes;
● Comentários Enganadores;
● Comentários Longos;
● Código como Comentário
● Comentários Ruidosos
○ /*dia do mes */ private int diaDoMes;
● Marcadores de posição
○ // ########################
○ // ====== Comentário bem ruim ======
Comentários ruins
30. Bizu #18 - Formatação é importante SIM!
Bizu #19 - Entre em acordo com o time de desenvolvimento e definam um
padrão
Bizu #20 - Procurem por padrões já estabelecidos, como do Google
Bizu #21 - Metáfora do Jornal;
31. Bizu #22 - No eclipse utilize - CTRL + 3 e digite: Formatter, clique na
opção:
Agora você pode editar sua formatação
32. Bizu #23 - No eclipse utilize - CTRL + 3 e digite: Save Actions, clique em:
Agora você pode habilitar a ação que toda vez que o documento é salvo ele
formata o código.
OBS:. Com o Save Actions é possível configurar vários combos
;D
34. Bizu #24 - Sempre que possível use Try/Catch;
Bizu #25 - Faça um bom sistema de Logs no seu projeto;
Bizu #26 - Tente cobrir a maior parte do código com testes;
Bizu #27 - Build automatizado/Integração Contínua;
36. Bizu #28 - Dar nomes de métodos que expressam o que o teste faz;
Bizu #29 - Nomes de Classes de teste igual aos nomes das Classes
Testadas com sufixo Test para testes unitário e IT para testes de
integração;
Bizu #30 - Mesmo Pacote, SRC diferente;
37. Bizu #31 - Refatore testes;
Bizu #32 - Cada método deve executar apenas uma tarefa;
Bizu #33 - Deve ser simples e independente sempre que possível;
Bizu #34 - Cobertura de testes