code smell gsw

Post on 13-Apr-2017

101 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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

top related