Teorema fundamental da legibilidade 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."
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.
assert((!(bucket = FindBuckket(key))) || !bucket->IsOccupied());
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
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.