[language-agnostic] 대소 문자 만 다른 변수 이름을 사용하는 것이 부도덕한가요?

예를 들어, 다음 코드를 사용하십시오.

var person = new Person();

또는 Pythonistas :

person = Person()

나는 이것이 얼마나 나쁜지 끊임없이 이야기하지만,이 두 줄의 코드가 부도덕 한 예를 아직 보지 못했습니다. 나에게 사람은 사람이고 다른 이름을 붙이는 것은 시간 낭비입니다. 구문 강조를 표시하기 며칠 전에는 이것이 큰 문제 였을 것입니다. 하지만 요즘에는 변수 이름과 별개로 유형 이름을 구분하는 것이 매우 쉽습니다. 도대체 여기에서 차이점을 쉽게 알 수 있습니다.

아니면 내가 놓친 것이 있습니까? 그렇다면 문제를 일으키는 코드의 예를 제공하면 도움이 될 것입니다.



답변

이것이 나쁘다고 말하는 사람들의 이유는 무엇입니까? 나는 항상 이것을한다. 유형의 단일 변수에 이름을 지정하는 가장 간단하고 표현적인 방법입니다. 두 개의 Person객체가 필요하면 다음 person과 같은 의미있는 형용사를 접두사 로 붙일 수 있습니다.

fastPerson
slowPerson

그렇지 않으면 그냥

person

나도 괜찮아.


답변

이 패턴을 메서드 서명에서 많이 사용합니다. IMHO를 설명하는 대체 이름을 제공 할 수 없다면 이것에 문제가 없습니다.

사람과 사람의 두 가지 유형이 있다면 그것은 매우 잘못된 것입니다.


답변

나는 임시 객체 참조를 위해 항상 그것을 사용합니다. 원시 데이터 유형에 대한 전염병처럼 피할 것입니다.

Person person = new Person(); // okay

int Int = 42; // pure evil


답변

누군가 그것이 악하다고 말하면 이것이 더 나은지 물어보십시오.

var abc = new Person();


답변

그 사람이 문맥 상 일반적인 사람이라면 “사람”은 정말 좋은 이름입니다. 물론 Person이 코드에서 특정 역할을 가지고 있다면 역할을 사용하여 그녀의 이름을 지정하는 것이 좋습니다.


답변

그렇게 말하면 반대 투표를받을 것 같지만 …

장대 한 살인과 탐욕을 목격 한 지 한 세기가 지난 지금, 우리가 할 수있는 가장 부도덕 한 일이 변수에 이름을 붙이는 것이라면 우리 프로그래머들은 진정으로 축복을 받았습니다.


답변

나는 그것이 반드시 “나쁘다”라고 생각하지는 않지만, 어떤 종류의 사람인지 (아마도 많은 가능한 사람 중 한 명만 다루고 있음)과 같이 더 많은 맥락을 제공하도록 자격을 부여 할 수 있다면 다른 사람이 그것을 선택합니다. 더 잘 이해할 수 있습니다.