tdd com clean code: chega de amadorismo!
DESCRIPTION
Tdd com clean code: chega de amadorismo!TRANSCRIPT
TDD com Clean CodeChega de amadorismo!
Alison Rodrigues de SouzaMotociclista
Programador JAVAAgilista
Certificado Scrum Master
André Dias Lima
Programador JAVAAgilista
Pós-graduando em Metodos Ágeis
O mundo está cheio de
gambiarras...
WTF?
AmadorismoSignificado de Amador segundo
Aurélio: (...) Que pratica qualquer arte ou esporte, sem ser um
profissional.(...)
Desenvolvedor ProfissionalQualquer tolo pode escrever código que um computador consiga entender. Bons programadores escrevem código que HUMANOS consigam entender.
Martin Fowlermartinfowler.com
Então…como podemos criar código que humanos possam entender?
Robert Martin = Uncle Bob
“...Um código limpo é simples e direto...”Grady Booch
“Big” Dave Thomas
Além do seu criador, um desenvolvedor pode ler e melhorar um código limpo...
Ron jeffries
Expressa todas as ideias do projeto que estão no sistema….
Ward Cunningham
Você sabe que está criando um código limpo quando cada rotina que você le se mostra como vocêesperava...
Clean CodeSimples e direto, um desenvolvedor pode ler.Cada rotina que você le mostra como você expressa todas as ideias.
Nomes significativosFaça distinções significativas, use nomes diferentes dentro de um mesmo escopo. Nomes como a1, a2, a3 são o oposto de nomes que demonstram intenção - são confusos e não informam nada.
Nomes significativos
Evite também usar abreviações ou trocadilhos, escreva exatamente o que você quer dizer, o nome deve ser auto-explicativo.
Nomes significativosÉ comprovado que um desenvolvedor passa muito mais tempo lendo código do que escrevendo, por isso não se preocupe em economizar caracteres ao escolher um nome.
Comentários
Comentários podem ser úteis se colocados nos lugares certos, mas também podem ser mentirosos e trazer
desinformação.
ComentáriosNa verdade, o melhor comentário é aquele que não precisa ser escrito. Um dos principais motivos para você escrever um comentário é porque o código está difícil de ser entendido.
ComentáriosVocê acha que o código ficou meio confuso e acha melhor adicionar um
comentário? Não, você precisa refatorar!
Método
Métodos devem conter no máximo 20 linhas e seu nível de identação
não pode ser maior que dois.
Método
Quanto ao conteúdo, um método deve ter somente UMA responsabilidade.
Classes e FormataçãoA legibilidade do código terá profundo efeito sobre todas as mudanças que serão feitas, seu estilo e disciplina sobrevive sobre estas mudanças.Procure escrever classes com no máximo 500 linhas, classes menores são mais fáceis de se entender. Já para as linhas de código, tente estabelecer um limite de caracteres por linha.
Classes e FormataçãoUma boa identação ajuda a visualizar
melhor todo o escopo e facilita a identificação de situações e regras relevantes.
Classes e FormataçãoTente manter conceitos relacionados mais próximos verticalmente, para criar um fluxo na leitura do código.
Classes e FormataçãoUse espaços entre operadores, parâmetros e vírgulas.
Classes e Formatação
Evite deixar o código todo
grudado.
Tratamentos de errosPrefira lançar uma exception ao invés de retornar um código de erro, estes retornos desorganizam a chamada do método.
Tipos de testes
Kent Beck
Não existe desenvolvedor profissional que não faça testes unitários no seu código!
Klaus Wuestefeld
Unit Test (2 a 7 linhas)
Service (Máximo 20 linhas)
Por que usar TDD?
Bateria de testes cresce
O código já nasce testado
Me faz pensar no requisito
Simplicidade
Me ajuda no design
Maior segurança para mudanças
Exemplos de testes
TDD em Código legado
TDD em Código legado
#SomosTodosProgramadores
Obrigado!
Contatos
Site/Blog: alisonsouza.com.br
Twitter: @AlisonRSouza
GitHub: AlisonSouza
E-mail: [email protected]