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.
Veja uma forma interessante de aplicar esse teorema e medir 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.
<h3>Código 1</h3>assert((!(bucket = FindBuckket(key))) || !bucket->IsOccupied());
<h3>Código 2</h3>
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 derão 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 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 em seu código conseguirá manter a produtividade em um bom nível.
Até a próxima!
[CURSO]120[/CURSO]