모든 변수에 대해 적절한 케이싱을 사용하기 때문에 다른 프로그래머로부터 많은 비판을받습니다. 예를 들어 일반적인 프로그래머는 employeeCount
변수 이름을 사용하지만을 사용 EmployeeCount
합니다. void 메소드, return 메소드, 변수, 속성 또는 상수 등 모든 것에 대해 적절한 케이싱을 사용 합니다. 심지어 Javascript 에서이 규칙을 따릅니다. 마지막은 사람들의 지미를 진정으로 약화시킵니다.
이 "비표준"케이싱 규칙을 따르지 말아야하는 일반적인 이유는 속성과 void 메서드에 대해 적절한 대소 문자를 모두 예약해야하기 때문입니다. 값을 반환하는 지역 변수와 메소드는 첫 단어가 소문자로되어 있어야합니다 int employeeCount = getEmployeeCount()
.
그러나 나는 왜 그런지 이해하지 못한다.
내가 이것에 의문을 가질 때, 나는 그것이 표준이라는 임의의 대답을 얻는 것처럼 보입니다 . 답이 무엇이든간에, 그것은 항상 비등합니다. 그것이 바로 그 방법입니다. 그리고 나는 그것을 질문하지 않습니다. 그냥 따라가 . 임의의 대답은 나에게 충분하지 않습니다.
Office IDE로 Excel 97 매크로를 프로그래밍 한 초기부터 로컬 변수 또는 속성인지 여부를 알려주는 케이싱 규칙이 없었습니다. 이것은 항상 매우 직관적 인 명명 규칙을 사용했기 때문입니다. 예를 들어 GetNuggetCount()
어딘가로가는 방법이 모든 너겟의 수를 얻는 방법을 분명히 제안합니다. SetNuggetCount(x)
너겟 수에 새로운 값을 할당 할 것을 제안합니다. NuggetCount
모두 자체적으로 단순히 값을 보유하는 속성 또는 로컬 변수를 제안합니다. 마지막으로, "아하! 그것은 질문이다. 재산 또는 변수? IT는 누구인가?" "정말 중요한가요?"
그래서 여기에 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);
}
}