Opa! Este é o último capítulo da série insights de código limpo de Talking About Testing, inspirado no livro Código Limpo – Habilidades práticas do agile software, de Robert C. Martin, e conforme prometi, trouxe uma lista com alguns odores e heurísticas retirados do último capítulo do livro.
Comentários
C4: Comentário mal escrito – Comentários quando são necessários devem ser pensados antes de escritos, e então, devem expressar claramente o que não pode (infelizmente) ser descrito pelo próprio código.
Ambiente
A2: Testes requerem mais de uma etapa – A execução dos testes deve ser rápida, fácil e obvia de se fazer. Crie um comando simples para sua execução.
Funções
F3: Parâmetros lógicos – Funções devem fazer somente uma coisa e parâmetros lógicos (booleanos) em funções quebram este princípio.
Geral
G5: Duplicação – Respeite o princípio DRY (don’t repeat yourself) – não se repita. Código duplicado é um ótimo motivo para refatoração, elimine-os sempre.
G16: Propósito obscuro – Códigos devem ser expressivos e deixar claro seu propósito, caso não sejam, refatore-os de forma à expressá-los melhor.
G19: Use variáveis descritivas – Uma das formas mais poderosas de tornar um programa legível é separar os cálculos em valores intermediários armazenados em variáveis com nomes descritivos.
G20: Nomes de funções devem dizer o que elas fazem – Acho que não precisa de explicação. Precisa? Veja o código abaixo, por exemplo:
var PeopleForm = require('people-form.page); describe('Foo', function() { var peopleForm = new PeopleForm(); it('bar', function() { peopleForm.visit(); }); });
Você precisa ler o conteúdo da função visit dentro do page object people-form.page para imaginar o que ela faz? Creio que não, certo? Bem, ela basicamente visita o formulário de pessoas.
G30: As funções devem fazer uma coisa só – Se você identificar funções realizando mais de uma operação, pense em uma forma de quebrá-la em funções menores que fazem uma coisa só.
Nomes
N3: Nomes não ambíguos – Pense bem nos nomes (de variáveis, funções e classes) antes de simplesmente escrevê-los e verifique que eles não tenham duplo sentido e deixem claro seu propósito.
Testes
T9: Testes devem ser rápidos – Um teste lento não será executado. Encontre uma forma de tornar seus testes rápidos, pois são eles que proverão feedback quando estivermos alterando um código que antes funcionava e precisamos saber o quanto antes se não quebramos nada.
E aí, gostou da série? Deixa um comentário.
E aproveitando o fim da série, o que mais você gostaria de ler neste blog?
Tenha uma ótima semana!
=D