Este post registra em português o recém lançado pre-print de um estudo que avalia a maneira como os nomes de funções e variáveis são normalmente usados na composição de um programa de computador, e qual seu impacto na facilidade de compreensão e manutenção do código. O trabalho sugere que sejam usados nomes menos obfuscados e mais expressivos na nomenclatura desses elementos de código, como no exemplo:
// Este fragmento mostra os nomes, obfuscados e
// inexpressivos, para a função exibeNum() e suas variáveis
// internas n1 e n2
void exibeNum(int n1, float n2) {
cout << "O número int é: " << n1;
cout << "O número float é: " << n2;
}
// Este fragmento mostra uma nomenclatura mais clara e
// expressiva para as mesmas funções e variáves,
// agora renomeadas
void funcao_que_exibe_numero(int numero_1, float numero_2) {
cout << "O número int é: " << numero_1;
cout << "O número float é: " << numero_2;
}
Este é um daqueles assuntos que nunca são citados nominalmente, mas que estão logo abaixo da superfície, e são fundamentais para produtividade de uma equipe de programação. Ao trabalho:
Resumo
Os nomes de variáveis e funções servem como documentação implícita e são instrumentais para a compreensão de um programa. Mas escolher nomes bons e significativos é difícil. Realizamos uma sequência de experimentos em que um total de 334 sujeitos são obrigados a escolher nomes em determinados cenários de programação. O primeiro experimento mostrou que a probabilidade de que dois desenvolvedores selecionassem o mesmo nome era baixa: Nas 47 instâncias de nossos experimentos, a mediana de probabilidade foi de apenas 6,9%. Ao mesmo tempo, depois que um nome específico é escolhido, ele geralmente é entendido pela maioria dos desenvolvedores. A análise dos nomes fornecidos no experimento sugere um modelo em que a nomeação é um processo (não necessariamente consciente ou serial) de três etapas: (1) Selecionar os conceitos a serem incluidos no nome, (2) Escolher as palavras para representar cada conceito, e (3) construir um nome usando essas palavras. Um experimento de acompanhamento, usando a mesma configuração, então verificou se o uso explícito desse modelo pode melhorar a qualidade dos nomes. Os resultados foram que os nomes selecionados por assuntos utilizados pelo modelo foram julgados, por dois juízes independentes, superiores aos nomes escolhidos no experimento original, em uma proporção de dois para um. O uso do modelo parece incentivar o uso de mais conceitos e nomes mais longos (grifos nossos).
Link para o trabalho integral em ArXiv