Eu recebo muitas críticas de outros programadores devido ao meu uso de case completo e adequado para todas as minhas variáveis. Por exemplo, seu programador típico usará employeeCount
para um nome de variável, mas eu uso EmployeeCount
. Uso maiúsculas e minúsculas para tudo , seja um método nulo, método de retorno, variável, propriedade ou constante. Eu até sigo esta convenção em Javascript. Esse último realmente mexe com os impulsos das pessoas.
A razão típica dada por que eu não devo seguir esta convenção de caixa "não-padrão" é porque o caso completo deve ser reservado para propriedades e métodos nulos. A variável local e os métodos que retornam um valor devem ter a primeira palavra em minúsculas int employeeCount = getEmployeeCount()
.
No entanto, eu não entendo o porquê.
Quando questiono isso, parece que recebo uma resposta arbitrária desse padrão . Seja qual for a resposta, geralmente sempre se resume a: É assim que as coisas são e eu não questiono. Eu apenas sigo. . Respostas arbitrárias nunca são boas o suficiente para mim.
Desde meus primeiros dias de programação de macros do Excel 97 com o Office IDE, nunca precisei de uma convenção de caso para me dizer se algo é ou não uma variável ou propriedade local. Isso ocorre porque eu sempre usei uma convenção de nomenclatura muito intuitiva. Por exemplo, GetNuggetCount()
sugere claramente um método que vai a algum lugar e obtém uma contagem de todas as pepitas. SetNuggetCount(x)
sugere que você esteja atribuindo um novo valor à contagem de pepitas. NuggetCount
por si só sugere uma propriedade ou variável local que está simplesmente mantendo um valor. Nesse último, podemos ficar tentados a dizer: "Ah, ah! Essa é a pergunta. Propriedade ou variável? QUAL É?" Para isso, eu respondia: "Isso realmente importa?"
Então, aqui está o tl; dr ;: Quais são os motivos objetivos, lógicos e não arbitrários para usar letras minúsculas para a primeira palavra em sua variável ou método de retorno?
Edit: Para MainMa
Substitua esse código pelo primeiro exemplo de código em sua resposta e veja como seu argumento se mantém:
public void ComputeMetrics()
{
const int MaxSnapshots = 20;
var Snapshots = this.LiveMeasurements.IsEnabled ?
this.GrabSnapshots(MaxSnapshots, this.cache) :
this.LoadFromMemoryStorage();
if (!Snapshots.Any())
{
this.Report(LogMessage.SnapshotsAreEmpty);
return;
}
var MeasurementCount = Measurements.Count();
this.Chart.Initialize((count + 1) * 2);
foreach (var s in Snapshots)
{
this.Chart.AppendSnapshot(s);
}
}