Insights de código limpo – Odores e Heurísticas

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

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s