나는 일반적으로 그러한 의견을 나쁜 습관으로 생각하며 이러한 종류의 정보는 SCM 커밋 로그에 속한다고 생각합니다. 대부분의 경우 코드를 읽기 어렵게 만듭니다.
그러나 특정 유형의 편집을 위해 종종 이와 같은 작업을 수행합니다.
사례 1-작업
Eclipse, Netbeans, Visual Studio와 같은 IDE를 사용하거나 코드베이스에서 다른 방법으로 텍스트 검색을 수행하는 방법이있는 경우 팀이 특정 "코멘트 태그"또는 "태스크 태그"를 사용합니다. 이 경우 유용 할 수 있습니다.
때때로 코드를 검토 할 때 다음과 같은 것을 추가합니다.
// TOREVIEW: [2010-12-09 haylem] marking this for review because blablabla
또는:
// FIXME: [2010-12-09 haylem] marking this for review because blablabla
커밋 로그에 무언가를 갖는 것이 좋지만 검토 회의에서 버그 수정 XY를 완전히 잊어 버린 이유는 경영진이있을 때 충분하지 않기 때문에 작업보기에서 Eclipse에서 볼 수있는 다른 사용자 정의 작업 태그를 사용합니다. 그리고 미끄러졌다. 따라서 긴급한 문제 또는 실제로 의심스러운 코드 조각에 대해서는 추가 알림 역할을합니다 (그러나 일반적으로 주석을 짧게 유지 하고 커밋 로그를 확인하여 알림이 여기에 있으므로 코드를 어지럽히 지 않습니다. 많은).
사례 2-타사 라이브러리의 패치
내 제품이 어떤 이유로 패치해야했기 때문에 타사 코드를 소스 (또는 라이브러리이지만 소스에서 다시 빌드)로 패키징해야하는 경우 패치를 별도의 문서에 문서화하여 "캐비티"를 나열합니다. 나중에 참조 할 수 있도록 소스 코드에는 일반적으로 다음과 유사한 주석이 포함됩니다.
// [PATCH_START:product_name]
// ... real code here ...
// [PATCH_END:product_name]
사례 3-명백한 수정
이것은 조금 더 논란의 여지가 있으며 수석 개발자가 요구하는 것에 더 가깝습니다.
내가 현재 작업하고있는 제품에서, 우리는 때때로 (일반적으로 일반적인 것이 아닙니다) 다음과 같은 의견을 가지고 있습니다 :
// BUGFIX: [2010-12-09 haylem] fix for BUG_ID-XYZ
버그 수정이 명확하지 않고 코드가 비정상적으로 읽히는 경우에만이 작업을 수행하십시오. 예를 들어 브라우저 문제가 있거나 제품에 문서 버그가 있기 때문에 구현해야하는 CSS 수정이 모호 할 수 있습니다. 따라서 일반적으로 내부 문제 저장소에 링크하면 버그 수정에 대한 자세한 추론과 외부 제품 버그 문서 (예 : 잘 알려진 Internet Explorer 6 결함에 대한 보안 권고 또는 그런 식으로).
그러나 언급했듯이 매우 드 rare니다. 그리고 태스크 태그 덕분에 정기적으로이 태그들을 살펴보고이 이상한 수정들이 여전히 의미가 있는지 또는 단계적으로 폐지 될 수 있는지 확인할 수 있습니다 (예를 들어, 버그가있는 제품에 대한 지원을 먼저 중단 한 경우).
실제 사례 : 실제 사례
어떤 경우에는 아무것도 아닌 것보다 낫습니다 :)
방금 코드 주석에서 거대한 통계 계산 클래스를 보았습니다. 여기서 헤더 주석은 일반적인 yadda yadda (리뷰어, 날짜, 버그 ID)와 함께 변경 로그 형식이었습니다.
처음에는 스크랩을 생각했지만 버그 ID가 현재 이슈 트래커의 규칙과 일치 할뿐만 아니라 회사에 합류하기 전에 사용한 트래커와 일치하지도 않았습니다. 그래서 코드를 읽고 클래스가 무엇을하고 있었는지 (통계 학자 아님) 이해하고 이러한 결함 보고서를 찾아 내려고했습니다. 그것이 발생했을 때 그들은 매우 중요했고 그 당시의 고객이 방출 한 매우 구체적인 요구 사항을 기반으로 약간의 정밀한 문제와 특별한 경우를 다루었으므로 파일을 편집하지 않고 다음 사람의 삶을 끔찍하게 무시했을 것입니다. . 결론적으로, 이것들이 거기에 없다면 나는 알지 못했을 것입니다. 그들이 거기에 없었고 수업에 대해 더 잘 이해했다면,
때로는 이와 같은 매우 오래된 요구 사항을 추적하기가 어렵습니다. 결국 내가 한 일은 여전히 헤더를 제거하는 것이었지만 각 요청 함수 앞에 블록 주석을 몰래 넣은 후에 왜 이러한 "이상한"계산이 특정 요청인지 설명합니다.
그래서 그 경우에 나는 여전히 이것이 나쁜 습관이라고 생각했지만 소년은 원래 개발자가 적어도 그것들을 넣은 것이 기뻤습니다! 대신 코드를 명확하게 주석 처리하는 것이 좋았지 만 아무것도 아닌 것보다 낫습니다.