clean code

45

Upload: lucas-boeing-scarduelli

Post on 09-Feb-2017

84 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Clean code
Page 2: Clean code

Arquiteto de softwareCOORDENADOR de pesquisa e desenvolvimento (P&D)COFUNDADOR DO CONVOQUE.ME - GOLEIROS DE ALUGUEL

PROFESSOR - CEdup Abílio paulo

Técnico em Informática industrialbacharel em sistemas de informação

Especialista em gerenciamento de projetos

10 anos de experiência EM DESENVOLVIMENTO8 anos EM desenvolvendo web

lucas boeing scarduelli

[email protected]

@LUCASSCARDUELLI

Page 3: Clean code

tudo tem um começo!

Page 4: Clean code

primeiro de tudo aprenda a pensar

lógica de programação

o difícil é resolver o problema

pergunte sobre tudo

código é a menor parte

Page 5: Clean code

o resto entra no loop infinito que é a vida do programador

Page 6: Clean code

Estudo

curso técnico

faculdadelivros

tutoriaisprojetos open source

Page 7: Clean code

prática

coding dojo trabalho

aula

freelancer

open source

hobby

Page 8: Clean code

aprendizadoabsorva o conhecimento

lide melhor com as pessoas

lide com os erros

lide com o fracasso

repita práticas de sucesso

Page 9: Clean code

aperfeiçoamento

novas técnicas

novas linguagens

novos domínios

novas tecnologias

aplique o aprendizado

aprenda inglês

Page 10: Clean code

o loop infinito!

while programador.estaVivo() {programador.estudar();programador.praticar();programador.cometerErros();programador.aprender();programador.corrigirErros();programador.evoluir();

}

Page 11: Clean code

robert c. martin @unclebobmartin

Page 12: Clean code

o que é um código limpo?

simples

direto

eficiente

sem duplicidade

elegante

feito com cuidadofácil manutenção

padronizado

poucas dependências

Page 13: Clean code

o que é um código limpo?

Page 14: Clean code

teoria da janela quebrada

Page 15: Clean code

como se mede o quão limpo um código é?

Page 16: Clean code

nomes significativos

nos escolhemos nomes para tudo E TEMOS QUE FAZER ISSO BEM FEITO, por isso eles devem nos dizer...

- por que existe- o que faz

- como é usado

Page 17: Clean code

devem revelar sua intenção…

Page 18: Clean code

devem revelar sua intenção…

Page 19: Clean code

devem revelar sua intenção…

Page 20: Clean code

devem revelar sua intenção…

Page 21: Clean code

devem ser pronunciáveis…

Page 22: Clean code

não seja genérico…

Page 23: Clean code

não economize nas palavras!

evite a desinformação!

evite palavras que não são palavras

se preciso use varias palavras

evite palavras reservadas

o tipo não precisa estar no nome

evite trocadilhos

use boas praticas

Page 24: Clean code

classes e métodos

nomes de classes devem ser substantivos e não conter verbos

Veículo, Pessoa, Cliente, Fornecedor,

Estoque, ...

nomes de métodos devem conter verbos

calculaCusto(), lancaEstoque(),

geraNotaFiscal(), ...

Page 25: Clean code

devem ser pequenos

“a primeira regra dos métodos e que eles devem ser

pequenos. a segunda e que devem ser menores ainda.”

(uncle bob)

classes menores são mais fáceis de ler e entender o que

estão fazendo.

classe = 200 a 500 linhasmétodos <= 20 linhas

linhas <= 100 caracteres

Page 26: Clean code

métodos devem fazer uma coisa só e fazer certo!

o difícil é definir o que é uma coisa só.

tente extrair parte do código e dar um nome a ele.

Page 27: Clean code

métodos devem fazer algo ou responder algo!

os dois juntos causa confusão.

Page 28: Clean code

simplifique as estruturas de decisão, evite O hard codE E APROXIME-SE DA MARGEM

Page 29: Clean code

simplifique as estruturas de decisão, evite O hard codE E APROXIME-SE DA MARGEM

Page 30: Clean code

dry - don’t repeat yourself

evite duplicidade de código! reutilize seus métodos.

Page 31: Clean code

srp - princípio da responsabilidade única

uma classe deve ter uma, e somente uma razão para

mudar

Page 32: Clean code

classes devem ser coesas

poucas variáveis

cada método deve manipular uma ou mais variáveis quanto mais variáveis um

método consegue manipular, mais coeso ele é

coesão e a co-dependência entre métodos e variáveis

Page 33: Clean code

comentários

podem ser mentirosos, mesmo sem intenção

comentários não escondem código ruim

comentário é sinal de necessidade de refatoração

nunca deixe um código comentado

Page 34: Clean code

explique-se com código

Page 35: Clean code

closing brace comments

Page 36: Clean code

comentários podem ser uteis

mostra a intenção por trás de uma decisão tomada

avisa aos desenvolvedores sobre a consequência de um

trecho de código

Page 37: Clean code

formatação

formatação é importante para a comunicação

legibilidade é importante para mudanças futuras

métodos com conceitos parecidos devem ficar

verticalmente próximos

ordem dos métodos influencia na legibilidade do

código

Page 38: Clean code

indentação

importante para visualização de todo o escopo

não deve ter nível maior que 2, para uma compreensão

fácil e rápida

espaçamento é importante

Page 39: Clean code

código hadoooouuuken!!

Page 40: Clean code

code smells - fique atento a eles

comentários pobres, obsoletos ou redundantes

métodos mortos ou que fazem muita coisa

código comentado

responsabilidades demais ou fora do contexto

nomes pequenos e inexpressivos

muitos parâmetros ou parâmetros boleanos

despadronizaçãonúmeros mágicos

duplicidade de código

Page 41: Clean code

mantenha sempre sua cozinha limpa!

Page 42: Clean code

regra do escoteiro

deixe a areá do acampamento mais limpa do que como você encontrou.

Page 43: Clean code

manifesto para desenvolvimento ágil de softwarewww.agilemanifest.com

Page 44: Clean code

manifesto para o artesanato de softwaremanifesto.softwarecraftsmanship.org

Page 45: Clean code

Perguntas?