Я сприймаю дуже багато критики з боку інших програмістів через те, що я використовую повний належний корпус для всіх моїх змінних. Наприклад, ваш типовий програміст буде використовувати employeeCount
для імені змінної, але я використовую EmployeeCount
. Я використовую повний належний кожух для всього , будь то недійсний метод, метод повернення, змінна, властивість або константа. Я навіть дотримуюся цієї конвенції в Javascript. Цей останній справді шелестить людям джимі.
Типова причина, чому я не повинен дотримуватися цієї «нестандартної» конвенції обсадної труби, полягає в тому, що повністю належний випадок повинен бути зарезервований для властивостей та недійсних методів. Локальна змінна та методи, які повертають значення, повинні мати перше слово в малій букві int employeeCount = getEmployeeCount()
.
Однак я не розумію, чому.
Коли я сумніваюсь у цьому, здається, що я просто отримую довільну відповідь, що це стандарт . Якою б не була відповідь, вона завжди завжди зводиться до Це просто так, і я не сумніваюся в цьому. Я просто дотримуюсь цього. . Довільні відповіді для мене ніколи недостатньо хороші.
Починаючи з моїх ранніх днів програмування макросів Excel 97 за допомогою Office IDE, мені ніколи не потрібна конвенція обкладинки, щоб сказати мені, чи є щось локальною змінною чи властивістю. Це тому, що я завжди використовував дуже інтуїтивну конвенцію про іменування. Наприклад, GetNuggetCount()
чітко підказує метод, який десь іде, отримує підрахунок усіх самородків. SetNuggetCount(x)
говорить про те, що ви присвоюєте нове значення для кількості самородків. NuggetCount
все саме по собі говорить про властивість або локальну змінну, яка просто містить значення. На останнього можна спробувати сказати: "А-а-а! Це питання. Власність чи змінна? ЯКІ ЦЕ?" На це я відповів би: "Це дійсно важливо?"
Отже, ось tl; dr ;: Які об’єктивні, логічні, не довільні причини використовувати малі літери для першого слова у вашій змінній або методі повернення?
Редагувати: Для MainMa
Замініть цей код на перший зразок коду у вашій відповіді та подивіться, наскільки добре ваш аргумент:
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);
}
}