CodeSmell
Mantendoseucódigolivredemauscheiros
freegoogleslidestemplates.com
Pedro HOS
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.
Sumário
11
12
Testes
Links
CódigoLimpo:
HabilidadesPráticasdoAgile
Software
freegoogleslidestemplates.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 Nomenclaturas
freegoogleslidestemplates.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
XYZControllerForEfficientHandlingOfString
XYZControllerForEfficientStorageOfString
Bizu #05 - Dê nomes pronunciáveis
Date genymdhms
Date generationTimestamp
6 Métodos
freegoogleslidestemplates.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âmetros
freegoogleslidestemplates.com
Bizu #10 - A quantidade de parâmetros ideal, é ZERO, 0, NULO;
Bizu #11 - Mas ...
1. Mônade
2. Díade
3. Tríades
4. Políade (Caso muito especial)
Bizu #12 - Crie objetos para transitar muitos parâmetros
8 Comentários
freegoogleslidestemplates.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ção
freegoogleslidestemplates.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 Testes
freegoogleslidestemplates.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
ThankYou
freegoogleslidestemplates.com
FGST
Free GoogleSlides
Templates

Code smell gsw

  • 1.
  • 2.
    Sumário 1 2 3 4 5 6 7 8 9 10 A Regra doescoteiro 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.
  • 3.
  • 4.
  • 5.
    Código Limpo -Habilidades Práticas do Agile Software (Robert C. Martin "Uncle Bob")
  • 6.
    "Qualquer tolo podeescrever código que um computador consiga entender. Bons programadores escrevem código que humanos consigam entender." - Martin Fowler
  • 7.
    1 Teoria dasjanelas quebradas freegoogleslidestemplates.com drauziovarella.com.br/drauzio/janelas-quebradas
  • 8.
    2 A Regrado escoteiro freegoogleslidestemplates.com robsoncastilho.com.br/2010/12/03/limpe-seu-codigo/
  • 9.
    Deixe o acampamentomais limpo do que você encontrou!
  • 10.
    3 Como mensurar aqualidade do seu código? freegoogleslidestemplates.com
  • 12.
    4 O queé um código sujo? freegoogleslidestemplates.com
  • 13.
    ● A lógicadeve 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ódigolimpo 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 )
  • 15.
  • 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
  • 19.
  • 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.
  • 22.
  • 23.
    Bizu #10 -A quantidade de parâmetros ideal, é ZERO, 0, NULO; Bizu #11 - Mas ... 1. Mônade 2. Díade 3. Tríades 4. Políade (Caso muito especial) Bizu #12 - Crie objetos para transitar muitos parâmetros
  • 24.
  • 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 (Direitosautorais) ● 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
  • 29.
  • 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
  • 33.
  • 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;
  • 35.
  • 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
  • 38.
  • 39.
    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
  • 40.
    Bizu #39 -github.com/ryanmcdermott/clean-code-javascript Bizu #40 - github.com/google/styleguide Bizu #41 - github.com/johnpapa/angular-styleguide
  • 41.
    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
  • 42.
  • 43.