View
293
Download
5
Category
Preview:
Citation preview
Clean CodeTiago Bencardino (tiagobencardino@gmail.com)
O que é “clean code” e por que é importante?
Escolhendo nomes com significado
Funções
Comentários
Agenda
Facilmente entendido pelos outros
Sem surpresas, direto
Mínimo, sem dependências
Feito para o mundo real, bom tratamento de erros
Coeso
Feito com cuidado
O que é um código limpo?
Sintomas de código ruim
Medo de efetuar mudanças
Confusão por não estar claro
Frustração pelo tempo perdido
Raiva por quem fez algo tao depreciável
Problemas
Dificuldade em corrigirproblemas
Perda de desempenho/produtividade do time
Em casos críticos, abandono do projeto
“Honestidade nas pequenas coisasnão é algo pequeno” – Ditadodinamarquês
“Deus está nos detalhes” –Arquiteto van der Rohe
Pequenas coisas importam
Nomes são importantissimos em software
Variáveis, funções, argumentos, classes, pacotes, etc
Boa parte do tempo estamos escolhendo nomesdurante a programação – devemos escolher BEM
Todo nome deve transparecer:
Seu objetivo (por que existe?)
Qua sua tarefa (O que faz)
Como é usado
Escolhendo nomes
Nomes devem sempre revelar a intenção
Se um nome requer um comentário explicando, entãoprovavelmente não é um bom nome
Nomes reveladores
Que nomes representariam melhor?
Exemplo – Flagged cells
Exemplo – Flagged cells
Exemplo – Flagged cells
Evite usar palavras-chave de outras linguages (ex: shell do unix)
Evite usar classes no nome das variaveis, se nao foremde tal classe (ex: list)
Evite usar nomes muito parecidos
Evite desinformação
Evite números em série
Faça distinções reais
Qual a diferença entre essas funções?
Se você nao consegue ler uma variável sem soletrar, provavelmente não é um bom nome (xpto, abc, etc..)
Nomes pronunciáveis
pegarOBeco(); ou sair(); ?
exterminate(); ou kill(); ?
Em geral, nomes como esses só tem signicadodurante um curto periodo de tempo
Evite piadas e gírias
Classes devem SEMPRE ser substantivo: Car, Person, LoginView, etc.
Métodos devem SEMPRE ser verbos
Uma boa prática é prefixar em ‘get’, ‘set’ e ‘is’ parametodos de acesso. Essa padrão pode variardependendo da linguagem.
Ao sobrescrever construtores, metódos factory estáticos com descricao dos argumentos éinteressante.
Classes e métodos/funções
Tamanho:
Regra 1: funções devem ser pequenas
Regra2: devem ser menores ainda
Blocos if, else, while: devem conter apenas 1 linha, com a chamada para outro metodo. Eviteaninhamento de blocos
Funções
Faça apenas uma coisa – tente extrair um pedaço do método e pensar em outro nome
Tenha apenas um nível de abstração
Ideia prática: prefixo TO
Funções Atômicas
Uma função deve, apenas:
Fazer algo
Responder algo
Separação de objetivo
Evite duplicação de código
Um código reescrito três vezes representa três pontos de mudança no futuro
E três oportunidades de falha
Lembre-se: programação estruturada, orientada a aspectos, componentes e objetos são estratégias para eliminar duplicação
DRY – Don’t repeat yourself
Prefira lançar exceções a retornar “error code” – se a linguagem der suporte
Erros
Existem muitas técnicas para escrever um bomcódigo
Aplicar essas técnicas exigem tempo, treino e paciência, mas o ganho de produtividade no futurocompensa
Não tenha medo de refatorar
Conclusão
Recommended