lucas boeing scarduelli
Arquiteto de software
COORDENADOR de pesquisa e desenvolvimento (P&D)
COFUNDADOR DO [Link] - GOLEIROS DE ALUGUEL
PROFESSOR - CEdup Abílio paulo
Técnico em Informática industrial
bacharel em sistemas de informação
Especialista em gerenciamento de projetos
[Link]
lucas@[Link] 10 anos de experiência EM DESENVOLVIMENTO
@LUCASSCARDUELLI 8 anos EM desenvolvendo web
tudo tem um começo!
lógica de programação
o difícil é resolver o problema
primeiro de tudo aprenda a pensar
código é a menor parte
pergunte sobre tudo
o resto entra no loop infinito que é a vida do
programador
curso técnico
livros
faculdade
Estudo
projetos open source tutoriais
coding dojo trabalho
freelancer
prática
aula
open source
hobby
repita práticas de sucesso
lide com o fracasso
absorva o conhecimento aprendizado
lide com os erros
lide melhor com as pessoas
aprenda inglês
novas linguagens
novos domínios
aperfeiçoamento aplique o aprendizado
novas técnicas novas tecnologias
o loop infinito!
while [Link]() {
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
}
robert c. martin
@unclebobmartin
o que é um código limpo?
eficiente
simples
elegante
direto
padronizado
sem duplicidade
poucas dependências
fácil manutenção feito com cuidado
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 palavras se preciso use varias
reservadas palavras
o tipo não precisa
estar no nome
use boas praticas
evite palavras que
não são palavras evite trocadilhos
evite a desinformação!
classes e métodos
nomes de classes devem ser
nomes de métodos devem
substantivos e não conter verbos
conter verbos
Veículo, Pessoa,
calculaCusto(),
Cliente, Fornecedor,
lancaEstoque(),
Estoque, ...
geraNotaFiscal(),
...
devem ser pequenos
“a primeira regra dos
métodos e que eles devem ser classes menores são mais
pequenos. a segunda e que fáceis de ler e entender o que
devem ser menores ainda.” estão fazendo.
(uncle bob)
classe = 200 a 500 linhas
métodos <= 20 linhas
linhas <= 100 caracteres
métodos devem fazer uma coisa só e fazer certo!
o difícil é definir o que é uma tente extrair parte do código
coisa só. 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,
nunca deixe um código
mesmo sem intenção
comentado
comentário é sinal de
comentários não escondem
necessidade de refatoração
código ruim
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
métodos com conceitos
formatação é importante parecidos devem ficar
para a comunicação verticalmente próximos
legibilidade é importante para ordem dos métodos
mudanças futuras influencia na legibilidade do
código
indentação
importante para visualização
de todo o escopo
espaçamento é importante
não deve ter nível maior que
2, para uma compreensão
fácil e rápida
código hadoooouuuken!!
code smells - fique atento a eles
comentários pobres, duplicidade de código
obsoletos ou redundantes
muitos parâmetros ou
nomes pequenos e código comentado parâmetros boleanos
inexpressivos
despadronização
números mágicos
métodos mortos ou que responsabilidades demais ou
fazem muita coisa fora do contexto
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 software
[Link]
manifesto para o artesanato de software
[Link]
Perguntas?