O Efeito Stroop no desenvolvimento de software
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.
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.
Postagens Relacionadas:
- Os nomes são importantes
- Início
- Certificado Java com o jeitinho brasileiro: Oracle Certified Java Programmer – OCJP/SCJP
- Iniciando em Ruby
- Mestrandos do Grupo Haw
Loading ...
One Response so far
Marcel
outubro 21st, 2011
17:32
Belo post, Gabriel!
Leave a comment