Grupo Haw

Compartilhando o que eu acho =)

mar

21

O Efeito Stroop no desenvolvimento de software

By Gabriel Rubens

Em uma postagem intitulada de Os Nomes São Importante eu escrevi um desabafo sobre um problema que estava tendo sobre o como a importância de se escrever nomes corretos. Ter que olhar a tabela do banco de dados pra enter qual é o real significado de um atributo em um objeto é tempo perdido.

Para minha surpresa lendo o livro O Programador Pragmático eu encontrei mais um ótimo exemplo de como esse retrabalho de interpretar qual o o significado de uma variável pode ser chato.

Logo no início da página que trata sobre o assunto Tudo de Resume a Escrever o autor coloca um provérbio chinês: A tinta mais fraca é melhor que a memória mais afiada.

Dito esse proverbio imagine a cena, você está lendo o código e encontra um método chamado buscarPessoaPorId(Pessoa pessoa) só que ao perceber um comportamento estranho e vai olhar a implementação do método. Pela implementação do método na verdade o busca é feita pelo CPF e não pelo ID.

Agora imagine você tendo que implementar uma lógica complexa utilizando não só esse mas dezenas de métodos com nomes ambíguos.

É assim que você vai ficar: Código Limpo - Uncle Bob

É assim que você vai ficar: Código Limpo - Uncle Bob

Nessas horas nós perdemos um tempo enorme pelo chamado Efeito Stroop que segundo a Wikipédia é “[...] é uma demonstração de interferência no tempo de reacção de uma tarefa[...]”, “[...] ocorre um atraso no processamento [...] causando tempos de reação mais lentos e um aumento de erros [...]” (http://pt.wikipedia.org/wiki/Efeito_Stroop).

Agora um exemplo que é apresentado no livro e também na Wikipédia que demonstra o quanto esse trabalho de traduzir o real significado de um método com nome ambíguo pode atrapalhar.

Leia esse texto rápido:

Vermelho Amarelo Azul Verde.

Verde Vermelho Amarelo Azul.

Azul Verde Vermelho Amarelo.

Amarelo Azul Verde Vermelho.

Agora leia novamente o mesmo texto seguindo a mesma ordem do primeiro texto, ignore a cor que está pintada o texto:

Vermelho Amarelo Azul Verde.

Vermelho Amarelo Azul Verde.

Vermelho Amarelo Azul Verde.

Vermelho Amarelo Azul Verde.

Se você consegue ler sem muitas dificuldades parabéns, só que provavelmente você não será o único a utilizar e dar manutenção em um código com um nome ambíguo que não expressam o seu significado.

No final das contas tenha em mente que você vai passar muito mais tempo lendo código que escrevendo e os outros desenvolvedores também, então é válido alguns segundinhos pensando em uma boa nomenclatura. Claro que escrever um bom código vai de encontro com as limitações técnicas de cada pessoas, e alguns livros como Refatoração, Código Limpo, O Programador Pragmático e outros ajudam a melhorar suas habilidade de escrever um bom código, mas não ter lido esses livros não é desculpa pra escrever um objeto com o atributo Pessoa.nmPes no lugar de Pessoa.nome.

É comum ler o próprio código antigo a encontrar muitos trechos que poderiam ser feitos de uma forma melhor, esse é o processo natural do crescimento profissional, o problema é a negligência que acarreta problemas futuros.

Gabriel Rubens

Postagens Relacionadas:

One Response so far

Belo post, Gabriel!

Leave a comment

*