Quando uma função é genérica, é lógico que os parâmetros serão genéricos e, portanto, devem ter nomes genéricos.
Não é o que você está dizendo, mas eu vi funções que executam uma função genérica com nomes de parâmetro que são específicos de forma enganosa. Como
public String removeNonDigits(String phoneNumber)
O nome da função soa muito genérico, como isso poderia ser aplicado a muitas seqüências de caracteres em muitas situações. Mas o nome do parâmetro é estranhamente específico, fazendo-me pensar se o nome da função é enganador ou ... o que?
Então, com certeza, em vez de dizer Intervalo de alcance, você pode dizer Intervalo de alcance ao Bolso. Mas que informação isto adiciona? Claro que é o intervalo para pad. O que mais poderia ser?
Adicionar algum prefixo arbitrário, "meu" ou "m_" ou qualquer outra coisa, transmite informações adicionais zero ao leitor. Quando eu usei linguagens onde o compilador não permite que um nome de variável seja o mesmo que um nome de tipo - com ou sem diferenciação de maiúsculas e minúsculas - eu às vezes coloco um prefixo ou um sufixo, apenas para fazê-lo compilar . Mas isso é apenas para satisfazer o compilador. Pode-se argumentar que, mesmo que o compilador possa distinguir, isso torna mais fácil para um leitor humano distinguir. Mas wow, em Java eu escrevi declarações como "Customer customer = new Customer ();" um bilhão de vezes e nunca achei confuso. (Eu sempre achei um pouco redundante e eu gosto disso em VB, você pode apenas dizer "dim cliente como novo cliente" e você não precisa dar o nome da classe duas vezes.)
Onde eu defendo strongmente os nomes genéricos é quando há duas ou mais instâncias do mesmo tipo na mesma função. ESPECIALMENTE parâmetros. Como:
public Range pad(Range range1, Range range2)
Qual é a diferença entre range1 e range2? Como eu vou saber? Se é algo em que eles realmente são dois valores genéricos e intercambiáveis, ok, como
public boolean overlap(Range range1, Range range2)
Eu esperaria que retornasse true se os intervalos se sobrepunham e false se não, então eles são genéricos e intercambiáveis.
Mas se eles são diferentes, me dê uma ideia de como eles são diferentes! Eu estava trabalhando em um programa recentemente que tinha uma classe "Place" para armazenar dados sobre lugares geográficos, e com variáveis desse tipo chamadas "p", "place", "place2", "myPlace", etc. Uau, aqueles os nomes realmente me ajudam a determinar qual é qual.