문제

나는 종종 보완적인 변수 쌍에 대한 좋은 이름을 생각해 내려고 노력한다. 두 변수가 반대 개념을 나타내는 경우, 두 명의 참가자는 일종의 Duologue 등을 나타냅니다.

이것은 카운터 예에 의해 더 잘 설명 될 수 있습니다. 나는 인쇄 광고의 일부로 두 개의 그래픽을 인쇄하는 앱을 유지 관리합니다. 데이터베이스에 저장되어 있습니다 TopLogo 그리고 LowerLogo, 내가 기대할 때마다 멈추고 다시 확인해야합니다. top 완성을 위해 bottom, 그리고 lower 보완해야합니다 upper.

잘 작동한다고 생각하는 몇 가지 분명한 예가 있습니다.

client / server
source / target 한 변수에서 다른 변수로 데이터 또는 파일을 복사/이동하기 위해
minimum / maximum

그러나 그러한 깔끔한 이름 지정 체계에 적합하지 않은 개념이 있습니다. 예를 들어, 레코드를 통해 페이징 할 때 '마지막' '최종'또는 '이전'을 의미합니까? 최근에 사용한 코드를 보았습니다 firstPage, previousPage, nextPage 그리고 finalPage 욕설을 피하기 위해 lastPage 완전히, 내가 매우 이길 것이라고 생각한 것은이 질문입니다.

우리와 공유하고자하는 깔끔한 변수 이름 쌍이 있습니까? (보너스 포인트가 같은 길이 인 경우 코드가 단일 글꼴에서 코드를 너무 깔끔하게 만듭니다.)

도움이 되었습니까?

해결책

모든 종류의 코드 스타일 규칙과 마찬가지로 일관성 당신이 노력해야 할 것입니다.

개발 팀이 "소스/대상"또는 "From/To"와 같은 일반적인 시나리오에 대한 "표준"접두사 쌍에 동의 한 다음 전체 프로젝트를 위해 고수 할 것입니다. 모든 개발자가 코드베이스의 특정 접두사의 의미를 알고있는 한 오해를 피하는 것이 더 쉽습니다.

변수가 공개 API의 일부인 경우, 가시성이 단일 클래스 또는 메소드로 제한되는 경우 코드 내의 주석에서 규칙에 대한 예외를 설명해야합니다.

다른 팁

내 데이터베이스에는 이름이 지정된 한 쌍의 열이 포함 된 많은 유효한 상태 ( "히스토리") 테이블이 있습니다. start_date 그리고 end_date. 그렇다면 보너스 포인트는 없다. 왜냐하면 '시작'이라는 단어와 동일한 수의 문자를 가진 직관적 인 대안을 제시하려고 시도하는 것보다 일반적으로 사용되는 '끝'을 사용하기 때문이다.

나는 더 많은 상황에 따른 용어가 생존 할 수있는 경우에도 이러한 일반적인 용어를 선호하는 경향이 있습니다. employee_start_date ~ 위에 employee_hire_date (그들의 고용이 공식적으로 고용되는 것 외에 다른 이유로 고용이 시작되면 어떻게해야합니까? 즉, 선호합니다 person_birth_date ~ 위에 person_start_date :)

명백한 경우에 의미 적으로 일관성을 유지하려고 시도하지만 (예 : 최대 값은 최소값으로, 가장 낮은 것”으로 간다. IDE. 클래스는 짧고 방법은 짧고 각 방법에서 변수는 거의 없습니다. 따라서 변수 쌍을 명확하게하는 한 무엇을 부르는지는 중요하지 않습니다. 코드는 전문적으로 보이지 않을 수 있지만 실제 품질은 코드에 있습니다. 바라보다 코드의.

좋은 javadoc 또는 문서 시스템이 무엇이든간에 문제가 더 사라지고, 그와 함께 갈 수있는 좋은 클래스 이름이있는 경우 문제가 더 사라집니다. 예를 들어, 인스턴스가있는 경우 Connection 클래스와 메소드 가라는 메소드가 있습니다 setDestination, 괜찮습니다. 그러나 SetDestination이라는 하나의 매개 변수를 가져옵니다. destination 그리고 그것은입니다 Server 클래스, 당신은 멋지다 ... 당신은 그것을 호출하는 것을 선호하지만 target, aimHere, placeToSendTheData, 또는 whatever (그리고 해당 이름, source, comingFromHere, 그리고 placeToGetTheDataFrom). 또한 DOC 시스템이 말합니다 일이 무엇인지, 그리고 그것은 귀중한 것입니다.

이 다음은 어리석게 들릴지 모르고 StackoverFlow에서 투표를 할 것이라고 확신하지만, 고유 한 비전문가 사운드 변수 이름은 큰 이점이 있습니다. 내 변수가 다음과 같은 이름을 가지고 있음을 알고 있습니다. placeWeWantTheDataToGo (그리고 IDE는 입력을 처리합니다) 그러나 JDK를하는 "진지한"사람들은 절대 그런 바보 같은 이름을 사용하십시오. 그래서 나는 변수가 나의 것 중 하나라는 것을 즉시 알고 있습니다. 또한 스페인과 이탈리아의 개발자들과 함께 일할 때 스페인 변수 이름으로 코드를 작성합니다 (항상는 아니지만 일반적으로). 이것은 동일한 효과를 유발합니다. 우리는 Conexion 수업은 우리의 것이지만 Connection 수업은 아닙니다.

또한 변수 이름을 입력하는 대신 코드 어딘가에 일정한 문자열을 할당하여 사용하므로 낮은 대신 하위 또는 아래쪽이라고 불러도 여전히 괜찮습니다.

예, 대칭이 명확하게 보완적인 변수 세트를 체계적으로 이름을 지정하려고합니다. 항상 쉬운 것은 아닙니다. 때로는 불가능합니다. 글쎄, 내가 나 자신을 위해 놓는 규칙을 사용하는 것은 불가능합니다. 즉, 나는 일반적으로 이름을 같은 길이를 갖도록 노력합니다. '상단'과 '하위'예제는 저를 배트티로 이끌 것입니다 (나는 이미 배트가 아니라고 가정하면 확실하지 않다고 가정합니다). 나는 아마도 같은 길이이기 때문에 '상단'과 '하단'을 사용할 것입니다. '상단'과 '하단'은 길이의 차이로 인해 저를 좌절시킬 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top