Prendo molte critiche da altri programmatori a causa del mio uso di un involucro completo per tutte le mie variabili. Ad esempio, il tuo programmatore tipico utilizzerà employeeCount
per un nome variabile, ma io uso EmployeeCount
. Uso il case completo per tutto , sia esso un metodo vuoto, un metodo di ritorno, una variabile, una proprietà o una costante. Seguo persino questa convenzione in Javascript. Quest'ultimo fa davvero frusciare le menzogne della gente.
Il motivo tipico dato per cui non dovrei seguire questa convenzione di involucro "non standard" è perché il caso completo dovrebbe essere riservato per proprietà e metodi vuoti. La variabile locale e i metodi che restituiscono un valore dovrebbero avere la prima parola in minuscolo int employeeCount = getEmployeeCount()
.
Tuttavia, non capisco perché.
Quando metto in dubbio questo, sembra che ottenga una risposta arbitraria di quello standard . Qualunque sia la risposta, di solito si riduce sempre a Questo è il modo in cui è e non lo metto in discussione. Lo seguo e basta. . Le risposte arbitrarie non sono mai abbastanza buone per me.
Fin dai miei primi giorni di programmazione di macro di Excel 97 con l'IDE di Office, non ho mai avuto bisogno di una convenzione di casing per dirmi se qualcosa è una variabile o proprietà locale. Questo perché ho sempre usato una convenzione di denominazione molto intuitiva. Ad esempio, GetNuggetCount()
suggerisce chiaramente un metodo che va da qualche parte e ottiene un conteggio di tutte le pepite. SetNuggetCount(x)
suggerisce di assegnare un nuovo valore al conteggio dei nugget. NuggetCount
tutto da solo suggerisce una proprietà o una variabile locale che contiene semplicemente un valore. A quest'ultimo si può essere tentati di dire: "Ah ah! Questa è la domanda. Proprietà o variabile? CHE COS'È?" A quello, risponderei con "Importa davvero?"
Quindi, ecco il tl; dr ;: quali sono le ragioni oggettive, logiche, non arbitrarie per usare le lettere minuscole per la prima parola nella variabile o nel metodo return?
Modifica: per MainMa
Sostituisci questo codice con il primo esempio di codice nella tua risposta e vedi quanto bene sostiene il tuo argomento:
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);
}
}