코드 주석에서 #XXX의 의미는 무엇입니까?


126

나는 이것을 코드에서 많이 보았고 심지어 vim도 특별한 경우로 표시합니다. #TODO그리고 #FIXME다른 두 개의 수정 마커가 vim 하이라이트이지만 무엇을 #XXX의미합니까?


7
질문은 Python 프로그래밍의 코드 태그 또는 주석 모범 사례에 대해 묻는 것입니다. 주제에 대한 Python Enhancement Proposal 토론이 있습니다. 질문은 계속 유지되어야합니다. 그래도 조금 더 잘 표현되었을 수 있습니다.

답변:


140

XXX댓글에는 일반적으로 헤드 업이 있습니다. 그것은 수:

  • 완전히 올바르게 구현되지 않은 것.
  • 나중에 수정해야 할 사항입니다.
  • 가능한 문제 지점을 강조합니다.
  • 확실하지 않은 질문입니다.

나는 종종 FIXME또는 TODO또는 같은 더 설명적인 태그를 선호했습니다 HACK. XXX위의 모든 것을 잡기 위해 자주 사용됩니다.

FreeBSD 코드 상호 참조 에서 'XXX'를 검색 하는 것은 여러 용도의 좋은 예입니다. 수천이 ...


재미있는 점은 제가 이걸 혼자 사용한다는 것입니다. XXX 또는 #XXX는 기본적으로 컴파일러를 트립하고 무언가로 돌아가도록 상기시킵니다. 일반적으로 포인터 참조 또는 이전에 알려지지 않은 값 또는 변수 이름.
bobby

5
이것은 내 원래 추측을 확인했다. 다른 프로그래머가 그 주석을 볼만한 것으로 강조하는 것을 나타내는 모든 태그 일 뿐이다.
Jorge Vargas

트롤을 시도하지는 않지만 "HACK"은 설명 적이 지 않습니다. 사실 매우 모호합니다. 나에게 그것은 적어도 세 가지를 의미 할 수 있습니다.
Ярослав Рахматуллин aug

2
@ ЯрославРахматуллин 소스 코드에서 나는 항상 "이건 추악한 해킹 작업이지만 충분히 잘 작동하는 것 같다"는 의미로 읽었습니다. 나중에 정리하고 싶지만 긴급하지는 않습니다. 나는 그것을 사용하지 않았지만 (일반적으로 TODO또는 XXX대신 사용) 그렇게 해석합니다.
Iiridayn

92
  • NOTE: 코드 작동 방식에 대한 설명 (자명하지 않은 경우).
  • XXX: 가능한 함정에 대한 경고로 NOTE:XXX:.
  • HACK: 문제 / 버그를 피하기 위해 잘 작성되지 않았거나 잘못된 코드입니다. 로 사용해야합니다 HACK:FIXME:.
  • FIXME: 이것은 일종의 효과가 있지만 더 잘 할 수 있습니다. (보통 재 작성이 필요한 서둘러 작성된 코드).
  • BUG: 여기에 문제가 있습니다.
  • TODO: 문제 없습니다. 일반적으로 무언가를 건너 뛸 때 추가 코드를 작성해야합니다.

적어도 이것이 내가 이러한 태그에 대해 배운 방법입니다. 기본적으로 처음 두 개 ( NOTEXXX)는 정보에 사용되며 조치가 필요하지 않습니다. 마지막 세 개 ( FIXME, BUGTODO)는 조치가 필요합니다. HACK사이 어딘가에 있습니다 (내 생각에는 거의 사용하지 않습니까?).


3
좋은 목록. 나는 또한 LAZY(FIXME 또는 HACK만큼 중요하지 않음) 및 OCD(과도한 엔지니어링으로 알려져 있음)을 좋아합니다.
Brendan Byrd

2
정말 이렇게 XXX을 사용 하시나요? 저는 XXX를 훨씬 더 높은 우선 순위로 보게되었습니다. 이는 "이 코드가 개정 관리에 제출되기 전에 수정해야하는 문제입니다"라는 의미입니다. 이것이 Google 내부에서 사용되는 방식이며 자동으로 시행되므로 코드 검토 중에 XXX가 표시 될 수 있지만 XXX가 사라질 때까지 코드를 제출할 수 없습니다. 오래 지속되는
Don Hatch

21

거부 된 2005 년 6 월 Python 향상 제안의 일부 메모 .

FIXME와 사이를 선택하는 XXX것은 어렵습니다.
XXX더 일반적으로 보이지만 훨씬 덜 설명 적입니다.
또한 알 수없는 값을 가진 XXX코드 조각에서 유용한 자리 표시 자입니다
.

따라서 FIXME선호되는 철자입니다.
Sun은 말한다 XXXFIXME제공 약간 다릅니다 XXX높은 심각도를.
그러나이 주제에 대한 수십 년의 혼란과
Sun의 영향을받지 않는 수백만 명의 개발자로 인해 동의어라고 올바르게 부르기가 쉽습니다.


PEP는 다음으로 시작합니다.

이 PEP는 거부되었습니다. 커뮤니티가 관심을 가질 수 있지만
표준 라이브러리가이 표준을 따르도록 만들려는 욕구는 없습니다.

...

코드 태그 란?

프로그래머는 면밀한 검사 또는 검토가 필요한 코드 섹션을 상기시키는 역할을하기 위해 임시 코드 주석 마크 업 규칙을 널리 사용합니다. 마크 업의 예로는 FIXME, TODO, XXX, BUG, 기존 소프트웨어의 폭 넓은 사용이 많은하지만. 이러한 태그는 이제부터라고한다 codetags . 이러한 코드 태그는 응용 프로그램 코드, 단위 테스트, 스크립트, 일반 문서 또는 적절한 위치에 표시 될 수 있습니다.


PEP는 흥미로운 읽기입니다.


10

PEP350을 살펴 보십시오 . 그것은 모든 설명 TODO, XXX내가 코드 태그 수단의 정확히 무슨 일을 기억할 수없는 때 등 내가 그것을 매일 사용합니다.


1
PEP350이 이러한 라벨의 출처인지 알고 있습니까? 이 레이블을 사용하는 방법을 설명하는 (유닉스 시대의) 오래된 문서를 알고 있습니까?
Ярослав Рахматуллин

6

. XXX보다 입력하기 쉽기 때문에 사용 합니다 TODO.

XXX 당신이 서둘러서이 문제로 돌아올 때를위한 것입니다.

TODO 다른 사람에게 넘겨야 할 때입니다.


XXX는 "서둘러이 문제를 직접 해결할 것입니다."라는 뜻입니다. TODO는 "이것은 다른 사람에게 할당 될 향후 백 로그 요청의 공식적인 부분입니다."를 의미합니다. 그것들은 문자 그대로의 의미입니다.
S.Lott

2
그리고 그 "문자 적 의미"는 어떤 RFC에 있습니까? 아니면 그것에 대한 다른 인용이 있습니까?
Randall

6
@Randall : "인용"? 죄송합니다. 많은 코드를 읽고 이해 한 것뿐입니다.
S.Lott



1

XXX는 NOTE와 약간 다르지만 HACK과 매우 유사한 경고의 줄임말입니다. 사용중인 타사 라이브러리 / 코드의 버그 일 수 있으며 // XXX : 코드는 타사 코드의 버그로 인한 해결 방법이거나보고 / 수정하는 사람에게 "주의"를 의미 할 수 있음을 나타냅니다. 특정 방식으로 수행 된 이유를 나타내는 코드. 그렇지 않으면 첫눈에 부정확하거나 우아하게 보일 수 있습니다. HACK은 자신의 코드 기반이나 타사 라이브러리에있을 수있는 문제에 대한 해결 방법을 의미하는 일반적인 용어입니다.


0

나는 FIXME개발자 HACK를위한 것이고, 관리자 XXX를위한 것이고, 사용자를 위한 것이라고 믿는다 .

예를 들어, XXX이 함수 를 무시하고 다른 곳에서이 함수를 호출하면 작동 방식을 이해하지 못하고 예기치 않은 일이 발생할 수 있으며이 문제를 처리하는 사람은 불행해질 것입니다 (적어도 XXX그렇게 생각 하는 사람 은 그렇게 생각합니다). 이 기능을 사용하지 않으면 문제가 사라질 것이라고 생각할 수 있습니다.

그러나의 FIXME경우 코드를 수정하여 작동하도록하는 것이 합당하다고 느낄 것입니다. 그리고의 HACK경우 사용하지 않더라도 더 나은 선택이 없을 수 있습니다.

당신이 쓴 경우 XXX자신의 코드에 누군가가 그것을 사용, 당신은 완전히 그 코드를 다시 썼다처럼 당신은 이유로 불행 느낄 수 있으며, 그 다음 완전히 다른 방식으로 작동, 당신은 다른 사람의 코드를 끊었다. 그러나 FIXME또는 TODO대신에 나간 경우 별로 신경 쓰지 않을 것입니다.


0

// XXX를 사용하므로 줄 번호를 기억할 필요가 없습니다. 대신 해당 코드로 돌아가고 싶을 때 XXX를 검색합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.