Quando o código cheira mal
É frequente ao programar começar a sentir um cheiro desagradável. Normalmente não consigo logo identificar o que é. Sinto apenas uma leve mas incómoda fragrância. À medida que vou cheirando com mais propósito vou conseguindo perceber de onde vem. Mas mesmo nessa altura, muitas vezes ainda não me é perfeitamente claro porque é que aquele cheiro dali vem.
Da minha experiência o processo tem 5 fases:
-
Começo a sentir um mau cheiro mas não sei de onde vem;
-
Identifico de onde vem o cheiro mas não sei porquê;
-
Compreendo porque é que cheira mal mas não sei como fazer com que deixe de cheirar mal. E não quero disfarçar com perfume;
-
Faz-se luz e compreendo o que tenho de mudar para parar o mau cheiro;
-
Altero o código e o mau cheiro passa. E uma sensação de alívio percorre o meu corpo.
Na maior parte das vezes os maus cheiros são consequência de algo menos correcto no desenho. Daí que, geralmente, a solução obrigue a refactorizar o código para corrigir o desenho. Também me acontece com frequência que a solução para o mau cheiro surja por consequência de uma refacturação que revela finalmente o problema mal cheiroso.
Um bom programador não só deve ter um nariz apurado como a força de vontade para fazer o que for necessário para o seu código cheirar sempre bem. Um mau programador é aquele que diz “primeiro estranha-se, depois entranha-se”. Já para não falar nos que, habituados a viver na pocilga, vivem rodeados de tantos maus cheiros que perderam a sensibilidade no olfato.
O conceito de “code smell” foi inventado por Kent Beck, um dos participantes no manifesto Agile , criador do conceito de Extreme Programming e um dos pais do Test Driven Development , tudo abordagens com vista a minimizar potenciais maus cheiros no código.
Particularmente popular no mundo Agile , esta metáfora é tão boa que devia ser adoptada em todos os meios. Principalmente nos mais mal cheirosos.
O Abapinho saúda-vos.