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 2Inael Rodrigues
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Clean Code summary
Clean Code summaryClean Code summary
Clean Code summaryJan de Vries
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Karoline Tavares
 
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
 
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
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
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
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScriptThiago Poiani
 

Mais procurados (20)

Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Clean Code summary
Clean Code summaryClean Code summary
Clean Code summary
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
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
 
Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
 
Padrão Adapter
Padrão AdapterPadrão Adapter
Padrão Adapter
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Clean code
Clean codeClean code
Clean code
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
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
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 
Aula 6 aed - registros
Aula 6   aed - registrosAula 6   aed - registros
Aula 6 aed - registros
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Clean code
Clean codeClean code
Clean code
 
Clean code slide
Clean code slideClean code slide
Clean code slide
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
Introdução a HTML, CSS, JS, Ajax
Introdução a HTML, CSS, JS, AjaxIntrodução a HTML, CSS, JS, Ajax
Introdução a HTML, CSS, JS, Ajax
 

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!