Teorema fundamental da legibilidade

Ao escrever um código você deve fazê-lo de modo que o tempo necessário para sua compreensão seja mínimo. Essa é a métrica mais importante para se ter um código legível e é o fundamento do teorema fundamental da legibilidade.

Medindo o nível de legibilidade do código

“Convide um amigo seu que é programador para ir até sua casa, apresente a ele um código escrito por você, sem lhe explicar nada. Peça que ele analise e lhe explique o que o código faz. Marque o tempo que ele irá levar para entender o seu código e conseguir lhe dar a explicação.”

Quanto maior o tempo gasto, menor é a legibilidade do seu código, e isso é um sinal de que ele precisa de melhorias a nível de legibilidade. Um código ilegível hoje, pode ser a sua perda de produtividade no futuro. O que você faz hoje, com total compreensão, daqui uns 2 anos quando precisar fazer uma manutenção, pode ser ilegível até para você mesmo, e isso fará com que você gaste um tempo precioso tentando entender aquilo que você mesmo escreveu.

Perseguir a qualidade de escrita de código e o aumento da sua legibilidade deve ser a missão diária de todo programador.

Existe uma máxima que diz o seguinte: “Menos é Mais”. Em se tratando de código legível ela funciona da seguinte forma:

Quanto menos código você escrever para resolver um problema, mais legível esse código será.”

Pode parecer estranho, mas é verdade. Mas quando falo de escrever menos código não quero dizer que a quantidade de linhas escritas deve ser menor, mas a estrutura de codificação ser mais compacta. Vejamos um exemplo na sequência.

Código 1

assert((!(bucket = FindBuckket(key))) || !bucket->IsOccupied());

Código 2

bucket = FindBucket(key)

if (bicket != NULL) assert(!bucket->IsOccupied());

Qual dos códigos anterior possui maior legibilidade? Qual deles você compreendeu mais rapidamente?

O código 1 tem somente uma linha, é mais exuto; porém o código 2 mesmo com 2 linhas de código é mais legível. Logo um código com menos linha pode não ser legível.

Vejamos agora um outro exemplo:

//versão rápida pra geração de hash
hash = (hash << 6) + (hash << 16) - hash + c;

O código acima tem 2 linhas, uma de comentário e outra de código puro. Se comparado com os código anteriores, ele é semelhante ao segundo em termos de quantidade de linhas, as o que define sua legibilidade é o comentário.

Dustin Boswell e Trevor Foucher deram uma definição muito interessante para essa questão:

Ainda que utilizar menos linhas de código seja um bom objetivo, minimizar o ‘tempo para entender’ é uma meta ainda melhor.

Termino esse artigo deixando para você o desafio de tornar o seu código mais legível a cada linha. Dessa forma você, a equipe envolvida, ou qualquer outra pessoa que precise dar manutenção no código conseguirá manter a produtividade em um bom nível.

Até a próxima!