SlideShare una empresa de Scribd logo
1 de 12
Código limpo 
CLEAN CODE(ROBERT C. MARTIN) 
YASSER V. DE ANDRADE
Nomes significativos 
Nós escolhemos nomes para tudo. Então nós temos que fazer isto bem 
feito. 
O nome deve nos dizer: 
 Por que ele existe. 
 O que ele faz. 
 Como ele é usado. 
Use nomes que revelem sua intenção 
 int d; //days 
 Se um nome requer um comentário, quer dizer que ele não está 
revelando sua intenção.
Nomes significativos 
 Evite palavras que podem ser variáveis ou palavras reservadas de 
outras plataformas. 
 Evite dar nomes como “listaDePessoas”. 
 Evite usar ´L´ minúsculo ou ´o´ maiúsculo, eles parecem com 1 e 0. 
 Use nomes pronunciáveis. 
Evite usar palavras que não são palavras. 
 private String ndbofcli; 
Ao invés de.. 
 private String nameDatabaseOfClient;
Nomes significativos 
 Use nomes fáceis de procurar 
 Nomes com apenas uma letra ou números são difíceis de ser 
encontrados e entendidos dentro do código. 
 Não use trocadilhos. 
 Escreva exatamente o que você quer dizer. 
 Não use palavras apenas por “consistência”. 
 Por exemplo, não use “add” se não está realmente adicionando algo. 
 Nomes de classes devem ser substantivos e nunca devem conter 
verbos. 
 Nomes de métodos devem conter verbos. 
 Os mutators e accessors devem ser nomeados com os prefixos “get” e 
“set” de acordo com o padrão javabean.
Funções 
 O que faz uma método fácil de ler e entender? 
 Como podemos fazer com que um método transmita sua 
intenção? 
 Que atributos podemos passar para nossos métodos que permitam 
que um leitor saiba o que se passa dentro dele ? 
 Métodos e funções são a primeira linha de organização de 
qualquer programa.
Funções 
Pequenos 
 A primeira regra dos métodos e funções é que eles devem ser pequenos. 
 A segunda regra, é que eles devem ser menores ainda. 
Fazer UMA coisa 
 “Métodos e funções devem fazer apena uma coisa, 
 devem fazê-la certa e devem somente fazê-la.” 
 Tentar extrair outro método de um primeiro com o nome dizendo o que ele está 
fazendo. 
 Use nomes claros 
 Use várias palavras para que o método seja facilmente entendido e possa dizer 
o que ele realmente faz 
 Métodos devem fazer alguma coisa ou retornar alguma coisa. Mas não os dois, 
pois isso gera confusão.
Funções 
Parâmetros 
 O número ideal de parâmetros de um método ou função é zero. 
Depois vem um e dois. 
 Três deve ser evitado. Mais do que três deveter uma boa 
justificativa paratê-lo, pois não devem ser usados. 
Parâmetros do tipo boolean 
 Passar um boolean para uma função é uma terrível prática. 
 Isso complica a assinatura do método. 
 Claramente está dizendo que a função faz mais de uma coisa.
Funções 
Efeitos colaterais 
 Efeitos colaterais são mentiras. 
 Sua função dizque fará uma coisa, mas faz outras “escondidas”. 
public boolean checkPassword(String username, String password) { 
String passwordStatus = validate(password); 
if(passwordStatus.equals(“OK”)) { 
Session.initialize(); //initialize 
returntrue; 
} 
returnfalse; 
}
Formatação 
Formatação é importante, pois se trata de comunicação. 
 Comunicação é a primeira ordem para os desenvolvedores 
profissionais. 
 A legibilidade do seu código terá profundo efeito em todas as 
mudanças que serão feitas. 
 Seu estilo e disciplina sobrevive mesmo se o código original for 
alterado. 
 Vertical formating 
 Não é uma regra, mas geralmente uma classe tem 200 linhas, com 
um limite de 500 linhas. 
 Classes menores são mais fáceis de entender.
Formatação 
Uma boa identação do código ajuda a visualizar todo o escopo. 
 Identificar as situações e regras relevantes mais rápido. 
 Sempre use espaços entre operadores, parâmetros e vírgulas. 
public double(inta,intb,int c) { 
Double value=number+(123*2); 
} 
 Melhor assim... 
public double(int a, int b, int c) { 
Double value = number + (123 *2); 
}
Comentários 
 Comentários podem ser bastante úteis se colocados nos lugares 
certos. 
 Podem ser mentirosos e trazer desinformação, mesmo sem 
intenção. 
 Um dos motivos mais comuns para se escrever comentários é 
código ruim. 
 Então quando você pensar em escrever um comentário, é sinal 
que ele deve ser refatorado. 
 Goodcomments: Alguns comentários são necessários 
ou benéficos. Mas o melhor é o que você não precisa escrever.
Comentários 
 Explanationofintent: Outros fornecem a intenção por trás de uma 
decisão tomada, e não só pela informação. 
 Warningofconsequences: As vezes é útil avisar outros 
desenvolvedores sobre algumas consequências. 
 Badcomments: “Qualquer comentário que força você a olhar em 
outra parte do código para entende-lo, não vale os bits que 
consome.” 
 Redundantcomments: Não diz nada a mais que o próprio Código. 
 Misleadingcomments: Quando um desenvolvedor declara algo e 
seu comentário que não é preciso o bastante para ser exato. 
 Noisecomments: Declaram o óbvio.

Más contenido relacionado

La actualidad más candente

Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Clean Code summary
Clean Code summaryClean Code summary
Clean Code summaryJan de Vries
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2Inael Rodrigues
 
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...Marcello Thiry
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)Marcello Thiry
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
Diagrama de Classe: Relacionamento de Composição
Diagrama de Classe: Relacionamento de ComposiçãoDiagrama de Classe: Relacionamento de Composição
Diagrama de Classe: Relacionamento de ComposiçãomarcusNOGUEIRA
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Leinylson Fontinele
 

La actualidad más candente (20)

Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Clean Code summary
Clean Code summaryClean Code summary
Clean Code summary
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2
 
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Clean code
Clean codeClean code
Clean code
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Diagrama de Classe: Relacionamento de Composição
Diagrama de Classe: Relacionamento de ComposiçãoDiagrama de Classe: Relacionamento de Composição
Diagrama de Classe: Relacionamento de Composição
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
Clean code
Clean codeClean code
Clean code
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Clean Code
Clean CodeClean Code
Clean Code
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
JAVA PROGRAMMING - The Collections Framework
JAVA PROGRAMMING - The Collections Framework JAVA PROGRAMMING - The Collections Framework
JAVA PROGRAMMING - The Collections Framework
 
Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)
 

Similar a Clean Code e nomes significativos

Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In TubaRafael Paz
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisRogerio Fontes
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Thiago Faria de Andrade
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3Inael Rodrigues
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshopguestd37c23
 
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
 
TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaChristian Cunha
 
3. ambiente de desenvolvimento do vb (parte 2)
3. ambiente de desenvolvimento do vb (parte 2)3. ambiente de desenvolvimento do vb (parte 2)
3. ambiente de desenvolvimento do vb (parte 2)Eugenio Caetano
 

Similar a Clean Code e nomes significativos (20)

Clean code
Clean codeClean code
Clean code
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
Clean Code na prática
Clean Code na práticaClean Code na prática
Clean Code na prática
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
 
A Arte do Código Limpo
A Arte do Código LimpoA Arte do Código Limpo
A Arte do Código Limpo
 
TDD com Clean Code: Chega de amadorismo!
TDD com Clean Code: Chega de amadorismo!TDD com Clean Code: Chega de amadorismo!
TDD com Clean Code: Chega de amadorismo!
 
O que é código bonito?
O que é código bonito?O que é código bonito?
O que é código bonito?
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3
 
Clean Code
Clean CodeClean Code
Clean Code
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshop
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Gisele
GiseleGisele
Gisele
 
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.
 
Clean Code
Clean CodeClean Code
Clean Code
 
TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian Cunha
 
3. ambiente de desenvolvimento do vb (parte 2)
3. ambiente de desenvolvimento do vb (parte 2)3. ambiente de desenvolvimento do vb (parte 2)
3. ambiente de desenvolvimento do vb (parte 2)
 

Clean Code e nomes significativos

  • 1. Código limpo CLEAN CODE(ROBERT C. MARTIN) YASSER V. DE ANDRADE
  • 2. Nomes significativos Nós escolhemos nomes para tudo. Então nós temos que fazer isto bem feito. O nome deve nos dizer:  Por que ele existe.  O que ele faz.  Como ele é usado. Use nomes que revelem sua intenção  int d; //days  Se um nome requer um comentário, quer dizer que ele não está revelando sua intenção.
  • 3. Nomes significativos  Evite palavras que podem ser variáveis ou palavras reservadas de outras plataformas.  Evite dar nomes como “listaDePessoas”.  Evite usar ´L´ minúsculo ou ´o´ maiúsculo, eles parecem com 1 e 0.  Use nomes pronunciáveis. Evite usar palavras que não são palavras.  private String ndbofcli; Ao invés de..  private String nameDatabaseOfClient;
  • 4. Nomes significativos  Use nomes fáceis de procurar  Nomes com apenas uma letra ou números são difíceis de ser encontrados e entendidos dentro do código.  Não use trocadilhos.  Escreva exatamente o que você quer dizer.  Não use palavras apenas por “consistência”.  Por exemplo, não use “add” se não está realmente adicionando algo.  Nomes de classes devem ser substantivos e nunca devem conter verbos.  Nomes de métodos devem conter verbos.  Os mutators e accessors devem ser nomeados com os prefixos “get” e “set” de acordo com o padrão javabean.
  • 5. Funções  O que faz uma método fácil de ler e entender?  Como podemos fazer com que um método transmita sua intenção?  Que atributos podemos passar para nossos métodos que permitam que um leitor saiba o que se passa dentro dele ?  Métodos e funções são a primeira linha de organização de qualquer programa.
  • 6. Funções Pequenos  A primeira regra dos métodos e funções é que eles devem ser pequenos.  A segunda regra, é que eles devem ser menores ainda. Fazer UMA coisa  “Métodos e funções devem fazer apena uma coisa,  devem fazê-la certa e devem somente fazê-la.”  Tentar extrair outro método de um primeiro com o nome dizendo o que ele está fazendo.  Use nomes claros  Use várias palavras para que o método seja facilmente entendido e possa dizer o que ele realmente faz  Métodos devem fazer alguma coisa ou retornar alguma coisa. Mas não os dois, pois isso gera confusão.
  • 7. Funções Parâmetros  O número ideal de parâmetros de um método ou função é zero. Depois vem um e dois.  Três deve ser evitado. Mais do que três deveter uma boa justificativa paratê-lo, pois não devem ser usados. Parâmetros do tipo boolean  Passar um boolean para uma função é uma terrível prática.  Isso complica a assinatura do método.  Claramente está dizendo que a função faz mais de uma coisa.
  • 8. Funções Efeitos colaterais  Efeitos colaterais são mentiras.  Sua função dizque fará uma coisa, mas faz outras “escondidas”. public boolean checkPassword(String username, String password) { String passwordStatus = validate(password); if(passwordStatus.equals(“OK”)) { Session.initialize(); //initialize returntrue; } returnfalse; }
  • 9. Formatação Formatação é importante, pois se trata de comunicação.  Comunicação é a primeira ordem para os desenvolvedores profissionais.  A legibilidade do seu código terá profundo efeito em todas as mudanças que serão feitas.  Seu estilo e disciplina sobrevive mesmo se o código original for alterado.  Vertical formating  Não é uma regra, mas geralmente uma classe tem 200 linhas, com um limite de 500 linhas.  Classes menores são mais fáceis de entender.
  • 10. Formatação Uma boa identação do código ajuda a visualizar todo o escopo.  Identificar as situações e regras relevantes mais rápido.  Sempre use espaços entre operadores, parâmetros e vírgulas. public double(inta,intb,int c) { Double value=number+(123*2); }  Melhor assim... public double(int a, int b, int c) { Double value = number + (123 *2); }
  • 11. Comentários  Comentários podem ser bastante úteis se colocados nos lugares certos.  Podem ser mentirosos e trazer desinformação, mesmo sem intenção.  Um dos motivos mais comuns para se escrever comentários é código ruim.  Então quando você pensar em escrever um comentário, é sinal que ele deve ser refatorado.  Goodcomments: Alguns comentários são necessários ou benéficos. Mas o melhor é o que você não precisa escrever.
  • 12. Comentários  Explanationofintent: Outros fornecem a intenção por trás de uma decisão tomada, e não só pela informação.  Warningofconsequences: As vezes é útil avisar outros desenvolvedores sobre algumas consequências.  Badcomments: “Qualquer comentário que força você a olhar em outra parte do código para entende-lo, não vale os bits que consome.”  Redundantcomments: Não diz nada a mais que o próprio Código.  Misleadingcomments: Quando um desenvolvedor declara algo e seu comentário que não é preciso o bastante para ser exato.  Noisecomments: Declaram o óbvio.