SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Gustavo Neves
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Thiago Barradas
 
Ysts4 Fazendo Pentesting Com Backtrack 4 Final - Versão Brasil 2010
Ysts4  Fazendo Pentesting Com Backtrack 4 Final - Versão Brasil 2010Ysts4  Fazendo Pentesting Com Backtrack 4 Final - Versão Brasil 2010
Ysts4 Fazendo Pentesting Com Backtrack 4 Final - Versão Brasil 2010Mauro Risonho de Paula Assumpcao
 
Ratchet - Framework para Web Apps - iOS & Android
Ratchet - Framework para Web Apps - iOS & AndroidRatchet - Framework para Web Apps - iOS & Android
Ratchet - Framework para Web Apps - iOS & AndroidWilker Foureaux
 
[PUC-MG][DAM][DWEB] Ratchet
[PUC-MG][DAM][DWEB] Ratchet[PUC-MG][DAM][DWEB] Ratchet
[PUC-MG][DAM][DWEB] RatchetBruno Nicolletti
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com pythonBruno Rocha
 
Código limpo: Boas práticas e sua importância no desenvolvimento de software.
Código limpo: Boas práticas e sua importância no desenvolvimento de software.Código limpo: Boas práticas e sua importância no desenvolvimento de software.
Código limpo: Boas práticas e sua importância no desenvolvimento de software.Pedro Edson Silva Barros
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Bernardo Fontes
 
HTML5 e CSS3 – rápido e eficaz para o presente
HTML5 e CSS3 – rápido e eficaz para o presenteHTML5 e CSS3 – rápido e eficaz para o presente
HTML5 e CSS3 – rápido e eficaz para o presentept_programar
 
JavaScript - Aula Introdutória
JavaScript - Aula IntrodutóriaJavaScript - Aula Introdutória
JavaScript - Aula Introdutórialucasleite
 
SACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de softwareSACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de softwareLuiz Nörnberg
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de djangorosenclever
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosFábio José Moraes
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 

Mais procurados (20)

Mantendo o código saudável
Mantendo o código saudávelMantendo o código saudável
Mantendo o código saudável
 
Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!
 
PHP Anti Patterns
PHP Anti PatternsPHP Anti Patterns
PHP Anti Patterns
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Ysts4 Fazendo Pentesting Com Backtrack 4 Final - Versão Brasil 2010
Ysts4  Fazendo Pentesting Com Backtrack 4 Final - Versão Brasil 2010Ysts4  Fazendo Pentesting Com Backtrack 4 Final - Versão Brasil 2010
Ysts4 Fazendo Pentesting Com Backtrack 4 Final - Versão Brasil 2010
 
Ratchet - Framework para Web Apps - iOS & Android
Ratchet - Framework para Web Apps - iOS & AndroidRatchet - Framework para Web Apps - iOS & Android
Ratchet - Framework para Web Apps - iOS & Android
 
[PUC-MG][DAM][DWEB] Ratchet
[PUC-MG][DAM][DWEB] Ratchet[PUC-MG][DAM][DWEB] Ratchet
[PUC-MG][DAM][DWEB] Ratchet
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
Código limpo: Boas práticas e sua importância no desenvolvimento de software.
Código limpo: Boas práticas e sua importância no desenvolvimento de software.Código limpo: Boas práticas e sua importância no desenvolvimento de software.
Código limpo: Boas práticas e sua importância no desenvolvimento de software.
 
Qualidade no desenvolvimento de sistemas
Qualidade no desenvolvimento de sistemasQualidade no desenvolvimento de sistemas
Qualidade no desenvolvimento de sistemas
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?
 
HTML5 e CSS3 – rápido e eficaz para o presente
HTML5 e CSS3 – rápido e eficaz para o presenteHTML5 e CSS3 – rápido e eficaz para o presente
HTML5 e CSS3 – rápido e eficaz para o presente
 
JavaScript - Aula Introdutória
JavaScript - Aula IntrodutóriaJavaScript - Aula Introdutória
JavaScript - Aula Introdutória
 
SACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de softwareSACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de software
 
TDC 2015 - Torne-se um programador melhor
TDC 2015 - Torne-se um  programador melhorTDC 2015 - Torne-se um  programador melhor
TDC 2015 - Torne-se um programador melhor
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de django
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviços
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Software livre mitos e verdades
Software livre   mitos e verdadesSoftware livre   mitos e verdades
Software livre mitos e verdades
 
Php do Jeito Certo
Php do Jeito CertoPhp do Jeito Certo
Php do Jeito Certo
 

Destaque

Destaque (20)

Monitoring service systems from
Monitoring service systems fromMonitoring service systems from
Monitoring service systems from
 
Space Policy - Vis Viva - 10th bi-weekly meeting - August 7, 2013
Space Policy - Vis Viva - 10th bi-weekly meeting - August 7, 2013Space Policy - Vis Viva - 10th bi-weekly meeting - August 7, 2013
Space Policy - Vis Viva - 10th bi-weekly meeting - August 7, 2013
 
Content Recycling- Birddog
Content Recycling-  BirddogContent Recycling-  Birddog
Content Recycling- Birddog
 
Deltek First Cloud Solutions for PS Firms
Deltek First Cloud Solutions for PS FirmsDeltek First Cloud Solutions for PS Firms
Deltek First Cloud Solutions for PS Firms
 
Onc more scan
Onc more scanOnc more scan
Onc more scan
 
Social isolation pilot project
Social isolation pilot projectSocial isolation pilot project
Social isolation pilot project
 
This is Bixti
This is BixtiThis is Bixti
This is Bixti
 
HTML5 Web Security
HTML5 Web SecurityHTML5 Web Security
HTML5 Web Security
 
Le mamme e i figli
Le mamme e i figli Le mamme e i figli
Le mamme e i figli
 
Billionairess Academy
Billionairess AcademyBillionairess Academy
Billionairess Academy
 
Blagoveschensky mobile site_2011-13
Blagoveschensky mobile site_2011-13Blagoveschensky mobile site_2011-13
Blagoveschensky mobile site_2011-13
 
Bizkaia
Bizkaia Bizkaia
Bizkaia
 
Miblagh (4)
Miblagh (4)Miblagh (4)
Miblagh (4)
 
Blog-3-Biodynamic-Psychotherapy
Blog-3-Biodynamic-PsychotherapyBlog-3-Biodynamic-Psychotherapy
Blog-3-Biodynamic-Psychotherapy
 
Bizkaia
BizkaiaBizkaia
Bizkaia
 
Peptide_Bioanalysis (1)
Peptide_Bioanalysis (1)Peptide_Bioanalysis (1)
Peptide_Bioanalysis (1)
 
CEO Responsible Ireland survey 2012
CEO Responsible Ireland survey 2012CEO Responsible Ireland survey 2012
CEO Responsible Ireland survey 2012
 
Hepatitis2
Hepatitis2Hepatitis2
Hepatitis2
 
4444444
44444444444444
4444444
 
Mapa efqm.2
Mapa efqm.2Mapa efqm.2
Mapa efqm.2
 

Semelhante a Code smell gsw

Testes de Software - Módulo 2
Testes de Software - Módulo 2Testes de Software - Módulo 2
Testes de Software - Módulo 2Rodrigo Paes
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasRafael Chinelato Del Nero
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In TubaRafael Paz
 
QCon 2011
QCon 2011QCon 2011
QCon 2011Ismael
 
Boas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_softwareBoas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_softwareivanassisleal
 
TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featuretdc-globalcode
 
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014Gilmar PSL
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SThoughtworks
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehaveMarcelo Zeferino
 
Princípios Básicos para Desenvolvedores
Princípios Básicos para DesenvolvedoresPrincípios Básicos para Desenvolvedores
Princípios Básicos para Desenvolvedoresguitoper
 
Teoria das janelas quebradas - Pragmatic Programmer
Teoria das janelas quebradas - Pragmatic ProgrammerTeoria das janelas quebradas - Pragmatic Programmer
Teoria das janelas quebradas - Pragmatic Programmerleopoa
 
Testes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaTestes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaAlex Tercete
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testesCarlos Santana
 

Semelhante a Code smell gsw (20)

Modulo 2
Modulo 2Modulo 2
Modulo 2
 
Testes de Software - Módulo 2
Testes de Software - Módulo 2Testes de Software - Módulo 2
Testes de Software - Módulo 2
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivas
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
QCon 2011
QCon 2011QCon 2011
QCon 2011
 
O que é código bonito?
O que é código bonito?O que é código bonito?
O que é código bonito?
 
O programador pragmático
O programador pragmáticoO programador pragmático
O programador pragmático
 
Anti-patterns
Anti-patternsAnti-patterns
Anti-patterns
 
Boas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_softwareBoas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_software
 
TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e feature
 
PHPZEIRO: Adote um framework
PHPZEIRO: Adote um frameworkPHPZEIRO: Adote um framework
PHPZEIRO: Adote um framework
 
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.S
 
Revista programar 12
Revista programar 12Revista programar 12
Revista programar 12
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
Princípios Básicos para Desenvolvedores
Princípios Básicos para DesenvolvedoresPrincípios Básicos para Desenvolvedores
Princípios Básicos para Desenvolvedores
 
Teoria das janelas quebradas - Pragmatic Programmer
Teoria das janelas quebradas - Pragmatic ProgrammerTeoria das janelas quebradas - Pragmatic Programmer
Teoria das janelas quebradas - Pragmatic Programmer
 
Clean Code
Clean CodeClean Code
Clean Code
 
Testes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaTestes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-dia
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
 

Code smell gsw

  • 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/
  • 9. Deixe o acampamento mais limpo do que você encontrou!
  • 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.
  • 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
  • 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
  • 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