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

Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em JavaDenis L Presciliano
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 
Writing Clean Code (Recommendations by Robert Martin)
Writing Clean Code (Recommendations by Robert Martin)Writing Clean Code (Recommendations by Robert Martin)
Writing Clean Code (Recommendations by Robert Martin)Shirish Bari
 
Clean Code Principles
Clean Code PrinciplesClean Code Principles
Clean Code PrinciplesYeurDreamin'
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introduçãoelliando dias
 
clean code book summary - uncle bob - English version
clean code book summary - uncle bob - English versionclean code book summary - uncle bob - English version
clean code book summary - uncle bob - English versionsaber tabatabaee
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
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 ObjetosLudimila Monjardim Casagrande
 

Mais procurados (20)

POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Writing Clean Code (Recommendations by Robert Martin)
Writing Clean Code (Recommendations by Robert Martin)Writing Clean Code (Recommendations by Robert Martin)
Writing Clean Code (Recommendations by Robert Martin)
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Clean Code Principles
Clean Code PrinciplesClean Code Principles
Clean Code Principles
 
Clean Code
Clean CodeClean Code
Clean Code
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
Clean Code na Prática
Clean Code na PráticaClean Code na Prática
Clean Code na Prática
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Clean Code
Clean CodeClean Code
Clean Code
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
clean code book summary - uncle bob - English version
clean code book summary - uncle bob - English versionclean code book summary - uncle bob - English version
clean code book summary - uncle bob - English version
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
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
 
Best coding practices
Best coding practicesBest coding practices
Best coding practices
 
Clean code
Clean codeClean code
Clean code
 
Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
 

Semelhante a Clean Code em

Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In TubaRafael Paz
 
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
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisRogerio Fontes
 
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 - ...Edlaine Zamora
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshopguestd37c23
 
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# .NETFabiano Roman Beraldi
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 RefactoringWildtech
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemassauloroos01
 

Semelhante a Clean Code em (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
 

Clean Code em

  • 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!