SlideShare une entreprise Scribd logo
1  sur  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.

Contenu connexe

Tendances

Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - ResumoDaniel Brandão
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 
Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)André Justi
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
Refactoring Techniques
Refactoring TechniquesRefactoring Techniques
Refactoring TechniquesMayada Ghanem
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 

Tendances (20)

Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
clean code
clean codeclean code
clean code
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
A Linguagem sql
A Linguagem sqlA Linguagem sql
A Linguagem sql
 
Curso de Node JS Básico
Curso de Node JS BásicoCurso de Node JS Básico
Curso de Node JS Básico
 
Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)
 
POO - Aula 1
POO - Aula 1POO - Aula 1
POO - Aula 1
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Refactoring Techniques
Refactoring TechniquesRefactoring Techniques
Refactoring Techniques
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Clean code
Clean code Clean code
Clean code
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 

Similaire à 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
 
Não existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoNão existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoRenan Carvalho
 

Similaire à 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
 
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)
 
Não existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoNão existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu código
 

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.