code smell gsw
TRANSCRIPT
Code SmellMantendo seu código livre de maus cheiros
freegoogleslidestemplates.com
Pedro HOS
Sumário1
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.
Sumário11
12
Testes
Links
Código Limpo:Habilidades Práticas do Agile
Softwarefreegoogleslidestemplates.com
Código Limpo - Habilidades Práticas do Agile Software (Robert C. Martin "Uncle Bob")
"Qualquer tolo pode escrever código que um computador consiga entender. Bons programadores escrevem código que humanos consigam entender." - Martin Fowler
1 Teoria das janelas quebradas
freegoogleslidestemplates.com drauziovarella.com.br/drauzio/janelas-quebradas
2 A Regra do escoteiro
freegoogleslidestemplates.com robsoncastilho.com.br/2010/12/03/limpe-seu-codigo/
Deixe o acampamento mais limpo do que você encontrou!
3 Como mensurar a qualidade do seu código?
freegoogleslidestemplates.com
4 O que é um código sujo?
freegoogleslidestemplates.com
● 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++ )
● 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 )
5 Nomenclaturasfreegoogleslidestemplates.com
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;
Bizu #03 - Evite nomes com mais de um siginificado ou com duplo sentido
String HP (empresa ou Hipotenusa? )
Bizu #04 - Evite nomes muito parecidos XYZControllerForEfficientHandlingOfStringXYZControllerForEfficientStorageOfString
Bizu #05 - Dê nomes pronunciáveisDate genymdhmsDate generationTimestamp
6 Métodosfreegoogleslidestemplates.com
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)
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.
7 Parâmetrosfreegoogleslidestemplates.com
Bizu #10 - A quantidade de parâmetros ideal, é ZERO, 0, NULO;
Bizu #11 - Mas ...1. Mônade2. Díade3. Tríades4. Políade (Caso muito especial)
Bizu #12 - Crie objetos para transitar muitos parâmetros
8 Comentáriosfreegoogleslidestemplates.com
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;
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;
● 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
● 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
9 Formataçãofreegoogleslidestemplates.com
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;
Bizu #22 - No eclipse utilize - CTRL + 3 e digite: Formatter, clique na opção:
Agora você pode editar sua formatação
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
Tratamento de erros10
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;
5 Testesfreegoogleslidestemplates.com
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;
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
Links12
Bizu #35 - https://bitbucket.org/account/user/gsw-team/projects/GSWOR
Bizu #36 - https://bitbucket.org/gsw-team/wiki/wiki/Home
Bizu #37 - https://bitbucket.org/gsw-team/wiki/wiki/java-style-guide
Bizu #38 - https://google.github.io/styleguide/javaguide.html
Bizu #39 - github.com/ryanmcdermott/clean-code-javascript
Bizu #40 - github.com/google/styleguide
Bizu #41 - github.com/johnpapa/angular-styleguide
Bizu #42 - infoq.com/br/presentations/clean-code-agile-profissional Bizu #43 - infoq.com/br/articles/clean-code-book-review
Bizu #44 - http://infoq.com/br/presentations/clean-code-para-testers
Thank Youfreegoogleslidestemplates.com
FGST Free Google Slides Templates