Dużo krytykuję ze strony innych programistów ze względu na to, że wykorzystuję pełną odpowiednią obudowę dla wszystkich moich zmiennych. Na przykład typowy programista użyje employeeCount
nazwy zmiennej, ale ja jej używam EmployeeCount
. Używam pełnej właściwej obudowy do wszystkiego , czy to metoda void, metoda return, zmienna, właściwość lub stała. Nawet przestrzegam tej konwencji w Javascript. Ten ostatni naprawdę szelestuje żarty ludzi.
Typowym powodem, dla którego nie powinienem stosować się do tej „niestandardowej” konwencji dotyczącej obudów, jest to, że pełny właściwy przypadek powinien być zarezerwowany dla właściwości i metod void. Zmienna lokalna i metody zwracające wartość powinny mieć pierwsze słowo pisane małymi literami int employeeCount = getEmployeeCount()
.
Nie rozumiem jednak dlaczego.
Kiedy zadaję to pytanie, wydaje się, że po prostu otrzymuję arbitralną odpowiedź na to pytanie . Jakakolwiek jest odpowiedź, zwykle zawsze sprowadza się do Tak po prostu jest i nie kwestionuję tego. Po prostu podążam za tym. . Arbitralne odpowiedzi nigdy nie są dla mnie wystarczająco dobre.
Od samego początku programowania makr Excel 97 za pomocą Office IDE, nigdy nie potrzebowałem konwencji casing, aby powiedzieć mi, czy coś jest lokalną zmienną lub właściwością. Jest tak, ponieważ zawsze stosowałem bardzo intuicyjną konwencję nazewnictwa. Na przykład GetNuggetCount()
wyraźnie sugeruje metodę, która gdzieś idzie i pobiera liczbę wszystkich samorodków. SetNuggetCount(x)
sugeruje, że przypisujesz nową wartość do liczby bryłek. NuggetCount
wszystko samo w sobie sugeruje właściwość lub zmienną lokalną, która po prostu przechowuje wartość. Do tego ostatniego można pokusić się o powiedzenie: „Ach ha! To jest pytanie. Własność lub zmienna? CO TO JEST?” Na to odpowiedziałbym: „Czy to naprawdę ma znaczenie?”
Oto tl; dr ;: Jakie są obiektywne, logiczne, nieobowiązkowe powody, aby używać małych liter dla pierwszego słowa w zmiennej lub w metodzie zwracanej?
Edycja: dla MainMa
Zamień ten kod na pierwszy przykładowy kod w odpowiedzi i sprawdź, jak dobrze utrzymuje się Twój argument:
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);
}
}