JavaDoc에서 더 이상 사용되지 않습니까?


11

JavaDoc에서는 다음과 X509Certificate getSubjectDN()같이 말합니다.

Denigrated , getSubjectX500Principal ()로 대체되었습니다.

더 이상 사용해서는 안되지만 Denigrated는 사용하지 않는 메소드에 대해 Deprecated가 표시되는 데 익숙합니다. 주석으로 닫히는이 특별한 경우에 대한 버그 보고서를 발견했습니다 .

이것은 버그가 아닙니다. "더 이상 사용되지 않음"은 심각한 경우에만 사용해야합니다.

사용 되지 않는 메소드를 사용하는 경우 일반적인 제안 조치는 메소드 사용을 중지하는 것입니다.

메소드가 Denigrated 로 표시 될 때 제안되는 조치는 무엇 입니까?


2
와. 답변을 읽었으며 기술적으로 정확하다고 확신하지만 '거부'는 끔찍한 단어입니다. 그들은 방금 'Discouraged'를 사용해야했습니다. 코드를 뱉을 필요가 없습니다. 경고로 충분합니다.
에릭 킹

@Eric King 나는 같은 느낌을 받았습니다. 나는 줄을 따라 더 많은 것을 생각하고 있었다.
Jacob Schoen

답변:


9

의 메리 엄 - 웹스터 정의 검게은 제안 :

1 : 명성을 공격하다 : 명예를 훼손 <적을
거부하다 > 2 : 중요성 또는 타당성을 부정하다 : belittle <그들의 업적 을 거부하다 >

다른 관련 버그로 작성된 것을 기반으로 defame / belittle 는 javadocs에서 사용되는 표현의 의도와 일치하는 것으로 보입니다- 버그 ID : 4959744 Denigrate X509Certificate.getSubjectDN () & co :

X509CRL에있는 X509Certificate 및 getIssuerDN 메소드 getSubjectDN () 및 getIssuerDN ()는 () 문제가있다 . 스펙이 매우 느슨한 java.security.Principal 인터페이스를 구현하는 지정되지 않은 클래스를 리턴합니다.

getSubjectDN () 및 getIssuerDN () 메소드에는 추가 스펙이 없으므로 구현에서 임의의 구현 특정 클래스를 리턴 할 수 있습니다. 실제 경험에 따르면 코드의 이식성 또는 신뢰성이 떨어집니다. 호환성을 위해 해당 방법의 사양을 변경할 수 없으며 크기를 변경할 수없는 것으로 간주해야합니다.

잘 정의 된 X500Principal 클래스의 인스턴스를 반환하는 대체 메소드 getSubjectX500Principal () & co가 JDK 1.4에 추가되었습니다. 이러한 메소드의 구현은 이러한 종류의 모든 문제를 피하도록 설계되었습니다. 그러나 새로운 방법은 노출 부족으로 어려움을 겪고 프로그래머는 익숙하고보다 직관적 인 getSubjectDN () & co 방법을 계속 사용합니다.

이를 변경하려면 이전 getSubjectDN () 및 getIssuerDN () 메소드가 더 이상 사용되지 않아야합니다. 그러면이 메소드를 사용하는 개발자가 컴파일 타임 경고를받을 수 있습니다.

평가

...이 경우 지원 중단이 부적절한 것으로 간주되었습니다. 대신 JavaDoc에주의 주석이 추가되었습니다 .


버그 ID 5008142를 읽음으로써이 "거부 된"내용에 대해 혼란스러워했던 사실은이 문제를 다루는 개발자의 잘못처럼 보입니다.

그들은 "심각한 경우에만 사용된다"는 모호한 진술 대신 버그 4959744를 발견하여 평가에서 참조해야합니다. 그들은 아마 가깝게 등의 명분으로 복제 할 수 "중단이 고려 버그 ID 4959744 당 모욕에 찬성 평가 거부되었습니다" .

아주 최소한 그들은 (아마도 함께와 버그 ID 4959744 참조 할 수에서 4,638,294 )에의 관련 보고서 필드 (라고 참고 항목 그들의 버그 추적기의 오래된 bugs.sun.com IIRC에서). 이것이 이루어지지 않았다는 것은 그들이 관련된 문제를 전혀 찾지 않았다는 것을 의심하게 만듭니다.


1
@FrustratedWithFormsDesigner 가장 어려운 부분은 결과가 "bugs.sun.com"으로 필터링되도록 oracle 검색 페이지에 "denigrated"를 입력하는 방법을 파악하는 것이 었습니다. 나머지는 쉬웠습니다. 방금 팝업 검색 결과를 확인했습니다. "검게은"검색 할 수있는 아주 좋은 단어입니다 :)
모기

1
내가 Google을 사용하여 첫 번째 것을 찾았지만 다른 것을주지 않았다는 것을 참조하십시오. 아마 더 어려워 보였을 것입니다. 감사합니다
야곱 Schoen

@jschoen 나는 이것이 당신 잘못이라고 생각하지 않습니다. 나는 그것에 대한 답변을 확장했다
gnat

4

좀 더 파고 난 후 JDK에서 Deprecation 이라는 블로그 게시물을 찾을 수있었습니다 . 기본적으로 Deprecated 라고 표시된 것은 사용하기에 해로운 것으로 간주되며 단순히 낙담 한 것이 있습니다.

여러 기능 릴리스에 대한 일반적인 정책은 핵심 JDK 구성 요소가 실제로 유해한 경우에만 더 이상 사용되지 않는 것으로 표시되는 것입니다. 클래스 또는 메소드를 사용하는 것이 좋지 않은 경우 일반적으로 더 이상 사용되지 않는 점수를 얻는 데 충분하지 않습니다.

그는 현재 아이템을 사용하지 않는 것으로 표시하는 방법이 있지만 결국에는이를위한 방법을 추가 할 수 있다고 언급했습니다.

언젠가, 이러한 종류의 조언은 javadoc 태그와 주석의 조합을 기반으로 해가 덜 덜 사용되는 "탈지"기능으로 공식화되어 이러한 덜 해로운 API 요소의 사용을 프로그래밍 방식으로 점검 할 수 있습니다.

Denigrated 라는 용어를 사용하기로 한 결정에 대해 구체적으로 다른 것을 찾을 수는 없지만 이것은 매우 가깝습니다. 그리고 이것을 바탕으로 개발자가 취해야 할 행동은 Deprecated 와 동일 합니다.이 방법을 사용하지 마십시오.

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