Clean code - Mantenha seu código limpo

23
Clean Code Tiago Bencardino ([email protected])

Transcript of Clean code - Mantenha seu código limpo

Page 1: Clean code - Mantenha seu código limpo

Clean CodeTiago Bencardino ([email protected])

Page 2: Clean code - Mantenha seu código limpo

O que é “clean code” e por que é importante?

Escolhendo nomes com significado

Funções

Comentários

Agenda

Page 3: Clean code - Mantenha seu código limpo

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?

Page 4: Clean code - Mantenha seu 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

Page 5: Clean code - Mantenha seu código limpo

Problemas

Dificuldade em corrigirproblemas

Perda de desempenho/produtividade do time

Em casos críticos, abandono do projeto

Page 6: Clean code - Mantenha seu código limpo

“Honestidade nas pequenas coisasnão é algo pequeno” – Ditadodinamarquês

“Deus está nos detalhes” –Arquiteto van der Rohe

Pequenas coisas importam

Page 7: Clean code - Mantenha seu código limpo

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

Page 8: Clean code - Mantenha seu código limpo

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?

Page 9: Clean code - Mantenha seu código limpo

Exemplo – Flagged cells

Page 10: Clean code - Mantenha seu código limpo

Exemplo – Flagged cells

Page 11: Clean code - Mantenha seu código limpo

Exemplo – Flagged cells

Page 12: Clean code - Mantenha seu código limpo

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

Page 13: Clean code - Mantenha seu código limpo

Evite números em série

Faça distinções reais

Qual a diferença entre essas funções?

Page 14: Clean code - Mantenha seu código limpo

Se você nao consegue ler uma variável sem soletrar, provavelmente não é um bom nome (xpto, abc, etc..)

Nomes pronunciáveis

Page 15: Clean code - Mantenha seu código limpo

pegarOBeco(); ou sair(); ?

exterminate(); ou kill(); ?

Em geral, nomes como esses só tem signicadodurante um curto periodo de tempo

Evite piadas e gírias

Page 16: Clean code - Mantenha seu código limpo

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

Page 17: Clean code - Mantenha seu código limpo

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

Page 18: Clean code - Mantenha seu código limpo

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

Page 19: Clean code - Mantenha seu código limpo

Uma função deve, apenas:

Fazer algo

Responder algo

Separação de objetivo

Page 20: Clean code - Mantenha seu código limpo

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

Page 21: Clean code - Mantenha seu código limpo

Prefira lançar exceções a retornar “error code” – se a linguagem der suporte

Erros

Page 22: Clean code - Mantenha seu código limpo

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

Page 23: Clean code - Mantenha seu código limpo