SlideShare uma empresa Scribd logo
1 de 21
Clean Code
André Luiz Leoni
Jean Leno Heidemann
Sumario
O que é?
Nomes Significativos;
Comentários;
Formatação;
Objetos;
Estruturas de Dados;
Tratamento de Erros;
Refinamento;
Clean Code vs Rendimento da Equipe
Replanejar a construção de um
sistema nem sempre é a
melhor opção;
Um código mal desenvolvido
pode no começo ser eficiente,
porém, com o tempo, pode
levar a empresa a
descontinuidade dele.
Definição Software
Soft - Flexível
Ware - Produto manufaturado
Clean Code
Código testável
Legível
Métodos bem definidos
Sem duplicidade de código e sobretudo
Você encontra a informação que você
esperava
Nomes Significativos
O nome de uma variável ou classe, deve dizer o porque ele existe;
Nomes devem ser bem distintos;
Nomes de funções devem ser pronunciáveis e passíveis de busca;
Nomes de classes devem sempre ser substantivos;
Nomes de funções não podem dizer que a função tem 2 funcionalidades;
Nomes de métodos devem ser descritivos e conter o verbo do que aquele
método irá fazer;
Padronize as palavras escolhidas no sistema;
Use nomes técnicos na sua aplicação;
Adicionar contextos significativos a variáveis.
Nomes Significativos Não faça isso.
Faça isso.
Nomes Significativos
Evite
Usar nomes errados
casa | caza
Usar nomes parecidos
informacaoProduto | dadosProduto
Usar nomes sequenciais
Nomes de classes deve sempre ser
substantivos
Produto, Item, Carro, Casa
Nomes de funções devem conter
verbo que indica o que o método
deve fazer
cadastrarProduto, pagarFatura,
solicitarOrcamento
Exemplos...
Funções
Funções devem ser de Responsabilidade única e
não podem inflingir os princípios de Aberto-
Fechado;
Funções não podem indicar duas funcionalidades;
verificarVendaEOrcamento, receberOuPagarFatura
Funções devem ser pequenas;
Máximo 20 linhas
Máximo 100 caracteres por linha
Nível de identação não deve ser maior que 2
Comentários
Os melhores comentários são aqueles que não precisam ser feitos
Bons comentários
Quando explica a intenção de uma decisão tomada, não apenas a informação do código
Alerta para futuros desenvolvedores
Não use comentários quando você pode usar variáveis ou métodos
Comentários
Não fazer comentários óbvios
Não fazer comentários de fechamento de instruções
Não comente códigos
Futuros desenvolvedores não sabem o motivo de existir e os matém
Formatação
Não é regra, mas classes geralmente tem entre 200 e 500 linhas
Classes menores são mais fáceis de entender
Sugere-se que um limite de até 100 ou 120 caracteres em uma linha
Utilize espaço entre operadores, parâmetros e vírgulas
Formatação
A leitura de um código deveria ser tão simples
como um usuário lê um jornal.
Identação
Fique atento na
identação dos códigos.
Objetos - Lei de Demétrio
Um módulo não deve saber as entranhas do objeto que ele manipula.
Objetos x Estruturas de Dados
Objetos
Escondem os dados
Expõem os métodos que manipulam os dados
Estruturas de dados
Expõem os dados
Não possuem métodos significativos
Tratamento de Erros
Utilizar exceptions em vez de códigos de erro;
Códigos de erro são mais facilmente esquecidos de serem tratados;
A linguagem Java por exemplo, quando adicionado a declaração “throws”
em um método, força que o desenvolvedor trate o erro
Não retorne null em um método e não passe null em parâmetros
Valores null facilmente causam NullExcelptions
Refinamento
Não pense que Clean Code é um trabalho fácil, exige muita prática,
conscientização da equipe e um bom tempo de desenvolvimento para que o
código alcance o seu estado da arte.
Refine seus códigos diariamente, e você em alguns meses já verá o resultado,
e lembre-se sempre:
A prática leva a perfeição!
Obrigado! :)

Mais conteúdo relacionado

Mais procurados

Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2
Inael Rodrigues
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
Nécio de Lima Veras
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
Leonardo Melo Santos
 

Mais procurados (20)

Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e Prática
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Padrão Adapter
Padrão AdapterPadrão Adapter
Padrão Adapter
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
POO - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetos
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Clean Code summary
Clean Code summaryClean Code summary
Clean Code summary
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 

Semelhante a Apresentação Clean Code

Semelhante a Apresentação Clean Code (20)

Clean code
Clean codeClean code
Clean code
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
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...
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
A Arte do Código Limpo
A Arte do Código LimpoA Arte do Código Limpo
A Arte do Código Limpo
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshop
 
Codigo limpo.pptx
Codigo limpo.pptxCodigo limpo.pptx
Codigo limpo.pptx
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Boas práticas de programação em C# .NET
Boas práticas de programação em C# .NETBoas práticas de programação em C# .NET
Boas práticas de programação em C# .NET
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 Refactoring
 
Code Smells
Code SmellsCode Smells
Code Smells
 
Clean code em C#
Clean code em C#Clean code em C#
Clean code em C#
 
Clean Code
Clean CodeClean Code
Clean Code
 
O programador pragmático
O programador pragmáticoO programador pragmático
O programador pragmático
 
Clean code
Clean codeClean code
Clean code
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 

Apresentação Clean Code

  • 1. Clean Code André Luiz Leoni Jean Leno Heidemann
  • 2. Sumario O que é? Nomes Significativos; Comentários; Formatação; Objetos; Estruturas de Dados; Tratamento de Erros; Refinamento;
  • 3.
  • 4. Clean Code vs Rendimento da Equipe Replanejar a construção de um sistema nem sempre é a melhor opção; Um código mal desenvolvido pode no começo ser eficiente, porém, com o tempo, pode levar a empresa a descontinuidade dele. Definição Software Soft - Flexível Ware - Produto manufaturado
  • 5. Clean Code Código testável Legível Métodos bem definidos Sem duplicidade de código e sobretudo Você encontra a informação que você esperava
  • 6. Nomes Significativos O nome de uma variável ou classe, deve dizer o porque ele existe; Nomes devem ser bem distintos; Nomes de funções devem ser pronunciáveis e passíveis de busca; Nomes de classes devem sempre ser substantivos; Nomes de funções não podem dizer que a função tem 2 funcionalidades; Nomes de métodos devem ser descritivos e conter o verbo do que aquele método irá fazer; Padronize as palavras escolhidas no sistema; Use nomes técnicos na sua aplicação; Adicionar contextos significativos a variáveis.
  • 7. Nomes Significativos Não faça isso. Faça isso.
  • 8. Nomes Significativos Evite Usar nomes errados casa | caza Usar nomes parecidos informacaoProduto | dadosProduto Usar nomes sequenciais Nomes de classes deve sempre ser substantivos Produto, Item, Carro, Casa Nomes de funções devem conter verbo que indica o que o método deve fazer cadastrarProduto, pagarFatura, solicitarOrcamento
  • 10. Funções Funções devem ser de Responsabilidade única e não podem inflingir os princípios de Aberto- Fechado; Funções não podem indicar duas funcionalidades; verificarVendaEOrcamento, receberOuPagarFatura Funções devem ser pequenas; Máximo 20 linhas Máximo 100 caracteres por linha Nível de identação não deve ser maior que 2
  • 11. Comentários Os melhores comentários são aqueles que não precisam ser feitos Bons comentários Quando explica a intenção de uma decisão tomada, não apenas a informação do código Alerta para futuros desenvolvedores Não use comentários quando você pode usar variáveis ou métodos
  • 12. Comentários Não fazer comentários óbvios Não fazer comentários de fechamento de instruções Não comente códigos Futuros desenvolvedores não sabem o motivo de existir e os matém
  • 13. Formatação Não é regra, mas classes geralmente tem entre 200 e 500 linhas Classes menores são mais fáceis de entender Sugere-se que um limite de até 100 ou 120 caracteres em uma linha Utilize espaço entre operadores, parâmetros e vírgulas
  • 14. Formatação A leitura de um código deveria ser tão simples como um usuário lê um jornal.
  • 15.
  • 17. Objetos - Lei de Demétrio Um módulo não deve saber as entranhas do objeto que ele manipula.
  • 18. Objetos x Estruturas de Dados Objetos Escondem os dados Expõem os métodos que manipulam os dados Estruturas de dados Expõem os dados Não possuem métodos significativos
  • 19. Tratamento de Erros Utilizar exceptions em vez de códigos de erro; Códigos de erro são mais facilmente esquecidos de serem tratados; A linguagem Java por exemplo, quando adicionado a declaração “throws” em um método, força que o desenvolvedor trate o erro Não retorne null em um método e não passe null em parâmetros Valores null facilmente causam NullExcelptions
  • 20. Refinamento Não pense que Clean Code é um trabalho fácil, exige muita prática, conscientização da equipe e um bom tempo de desenvolvimento para que o código alcance o seu estado da arte. Refine seus códigos diariamente, e você em alguns meses já verá o resultado, e lembre-se sempre: A prática leva a perfeição!