code smell gsw

Download Code smell   gsw

Post on 13-Apr-2017

82 views

Category:

Software

0 download

Embed Size (px)

TRANSCRIPT

  • Code SmellMantendo seu cdigo livre de maus cheiros

    freegoogleslidestemplates.com

    Pedro HOS

  • Sumrio1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    A Regra do escoteiro

    Como mensurar a qualidade do seu cdigo?

    O que um cdigo sujo?

    Nomenclaturas

    Mtodos

    Parmetros

    Comentrios

    Formatao

    Tratamento de erros

    Teoria das janelas quebradas.

  • Sumrio11

    12

    Testes

    Links

  • Cdigo Limpo:Habilidades Prticas do Agile

    Softwarefreegoogleslidestemplates.com

  • Cdigo Limpo - Habilidades Prticas do Agile Software (Robert C. Martin "Uncle Bob")

  • "Qualquer tolo pode escrever cdigo que um computador consiga entender. Bons programadores escrevem cdigo que humanos consigam entender." - Martin Fowler

  • 1 Teoria das janelas quebradasfreegoogleslidestemplates.com drauziovarella.com.br/drauzio/janelas-quebradas

    https://drauziovarella.com.br/drauzio/a-teoria-das-janelas-quebradas/https://drauziovarella.com.br/drauzio/a-teoria-das-janelas-quebradas/

  • 2 A Regra do escoteirofreegoogleslidestemplates.com robsoncastilho.com.br/2010/12/03/limpe-seu-codigo/

    https://robsoncastilho.com.br/2010/12/03/limpe-seu-codigo/https://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 cdigo?freegoogleslidestemplates.com

  • 4 O que um cdigo sujo?freegoogleslidestemplates.com

  • A lgica deve ser direta, para dificultar o encobrimento de bugs; Dependncias mnimas; Tratamento de erro; O Cdigo limpo, faz bem apenas uma coisa, executa apenas

    uma tarefa.

    Bjarne Stroustrup ( Pai do C++ )

  • O cdigo limpo tem testes de uma forma geral, como unitrios, integrao, aceitao etc.

    Nome significativos (nada de int i;); Poucas dependncias 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 pronunciveisDate genymdhmsDate generationTimestamp

  • 6 Mtodosfreegoogleslidestemplates.com

  • Bizu #06 - Mtodos devem ser pequenos, de 20 a 30 linhas no mximo

    Bizu #07 - Fazer apenas uma coisa, devem faz-la bem, devem fazer apenas ela. Use a extrao de mtodos, classes e interfaces que as IDEs modernas possuem ( CTRL + 1 no eclipse)

  • Bizu #08 - Evite muitos if e else, utilizar padres de projeto que faa abstrao, como Chain of Responsability, Abstract, Factory, etc

    Bizu #09 - Os blocos if, else, while, switch/case devem conter, de preferncia, apenas uma linha, sendo ela uma chamada de funo.

  • 7 Parmetrosfreegoogleslidestemplates.com

  • Bizu #10 - A quantidade de parmetros ideal, ZERO, 0, NULO;

    Bizu #11 - Mas ...1. Mnade2. Dade3. Trades4. Polade (Caso muito especial)

    Bizu #12 - Crie objetos para transitar muitos parmetros

  • 8 Comentriosfreegoogleslidestemplates.com

  • Bizu #13 - No insira comentrios em um cdigo ruim, reescreva-o;

    Bizu #14 - Comentrios velhos so mentirosos, e o pai da mentira o .

    Bizu #15 - Geralmente os comentrios no so atualizados;

  • Bizu #16 - Cdigo bom auto-explicativo, no precisa de comentrios

    Bizu #17 - Ler um cdigo 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 consequncias. No usar este teste porque ele gera um relatrio real;

    Comentrios TODO

    Comentrios bons

  • Comentrios Redundantes; Comentrios Enganadores; Comentrios Longos; Cdigo como Comentrio Comentrios Ruidosos

    /*dia do mes */ private int diaDoMes; Marcadores de posio

    // ######################## // ====== Comentrio bem ruim ======

    Comentrios ruins

  • 9 Formataofreegoogleslidestemplates.com

  • Bizu #18 - Formatao importante SIM!

    Bizu #19 - Entre em acordo com o time de desenvolvimento e definam um padro

    Bizu #20 - Procurem por padres j estabelecidos, como do Google

    Bizu #21 - Metfora do Jornal;

  • Bizu #22 - No eclipse utilize - CTRL + 3 e digite: Formatter, clique na opo:

    Agora voc pode editar sua formatao

  • Bizu #23 - No eclipse utilize - CTRL + 3 e digite: Save Actions, clique em:

    Agora voc pode habilitar a ao que toda vez que o documento salvo ele formata o cdigo.

    OBS:. Com o Save Actions possvel configurar vrios combos ;D

  • Tratamento de erros10

  • Bizu #24 - Sempre que possvel use Try/Catch;

    Bizu #25 - Faa um bom sistema de Logs no seu projeto;

    Bizu #26 - Tente cobrir a maior parte do cdigo com testes;

    Bizu #27 - Build automatizado/Integrao Contnua;

  • 5 Testesfreegoogleslidestemplates.com

  • Bizu #28 - Dar nomes de mtodos 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 unitrio e IT para testes de integrao;

    Bizu #30 - Mesmo Pacote, SRC diferente;

  • Bizu #31 - Refatore testes;

    Bizu #32 - Cada mtodo deve executar apenas uma tarefa;

    Bizu #33 - Deve ser simples e independente sempre que possvel;

    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

    https://bitbucket.org/account/user/gsw-team/projects/GSWORhttps://bitbucket.org/gsw-team/wiki/wiki/Homehttps://bitbucket.org/gsw-team/wiki/wiki/java-style-guidehttps://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

    https://github.com/ryanmcdermott/clean-code-javascripthttps://github.com/google/styleguidehttps://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

    https://www.infoq.com/br/presentations/clean-code-agile-profissionalhttps://www.infoq.com/br/articles/clean-code-book-reviewhttp://infoq.com/br/presentations/clean-code-para-testers

  • Thank Youfreegoogleslidestemplates.com

  • FGST Free Google Slides Templates