Recibo muchas críticas de otros programadores debido a mi uso de una carcasa completa para todas mis variables. Por ejemplo, su programador típico usará employeeCount
para un nombre de variable, pero yo uso EmployeeCount
. Utilizo una carcasa completa para todo , ya sea un método nulo, un método de retorno, variable, propiedad o constante. Incluso sigo esta convención en Javascript. Ese último realmente susurra las travesuras de la gente.
La razón típica dada por la que no debería seguir esta convención de carcasa "no estándar" es porque el caso completo debe reservarse para propiedades y métodos nulos. La variable local y los métodos que devuelven un valor deben tener la primera palabra en minúscula como int employeeCount = getEmployeeCount()
.
Sin embargo, no entiendo por qué.
Cuando cuestiono esto, parece que solo recibo una respuesta arbitraria de ese es el estándar . Cualquiera sea la respuesta, generalmente siempre se reduce a Así es como es y no lo cuestiono. Solo lo sigo. . Las respuestas arbitrarias nunca son lo suficientemente buenas para mí.
Desde mis primeros días de programación de macros de Excel 97 con el IDE de Office, nunca he necesitado una convención de mayúsculas o minúsculas para decirme si algo es o no una variable o propiedad local. Esto se debe a que siempre he usado una convención de nomenclatura muy intuitiva. Por ejemplo, GetNuggetCount()
sugiere claramente un método que va a algún lado y obtiene un recuento de todas las pepitas. SetNuggetCount(x)
sugiere que está asignando un nuevo valor al recuento de pepitas. NuggetCount
todo por sí mismo sugiere una propiedad o variable local que simplemente contiene un valor. Para el último, uno puede sentirse tentado a decir: "¡Ah, ja! Esa es la pregunta. ¿Propiedad o variable? ¿QUÉ ES?" A eso, respondería con: "¿Realmente importa?"
Así que aquí está el tl; dr ;: ¿Cuáles son las razones objetivas, lógicas y no arbitrarias para usar minúsculas para la primera palabra en su variable o método de retorno?
Editar: para MainMa
Reemplace este código con el primer ejemplo de código en su respuesta y vea qué tan bien se sostiene su argumento:
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);
}
}