clean code

Post on 09-Feb-2017

84 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

scarduelli.comlucas@scarduelli.com

@LUCASSCARDUELLI

tudo tem um começo!

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

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

Estudo

curso técnico

faculdadelivros

tutoriaisprojetos open source

prática

coding dojo trabalho

aula

freelancer

open source

hobby

aprendizadoabsorva o conhecimento

lide melhor com as pessoas

lide com os erros

lide com o fracasso

repita práticas de sucesso

aperfeiçoamento

novas técnicas

novas linguagens

novos domínios

novas tecnologias

aplique o aprendizado

aprenda inglês

o loop infinito!

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

}

robert c. martin @unclebobmartin

o que é um código limpo?

simples

direto

eficiente

sem duplicidade

elegante

feito com cuidadofácil manutenção

padronizado

poucas dependências

o que é um código limpo?

teoria da janela quebrada

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

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

devem revelar sua intenção…

devem revelar sua intenção…

devem revelar sua intenção…

devem revelar sua intenção…

devem ser pronunciáveis…

não seja genérico…

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

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(), ...

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

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.

métodos devem fazer algo ou responder algo!

os dois juntos causa confusão.

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

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

dry - don’t repeat yourself

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

srp - princípio da responsabilidade única

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

mudar

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

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

explique-se com código

closing brace comments

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

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

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

código hadoooouuuken!!

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

mantenha sempre sua cozinha limpa!

regra do escoteiro

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

manifesto para desenvolvimento ágil de softwarewww.agilemanifest.com

manifesto para o artesanato de softwaremanifesto.softwarecraftsmanship.org

Perguntas?

top related