Item 44. 모든 API 요소에 문서화 주석을 달라

문서화 주석은 API 문서를 만드는 가장 효과적인 방법이다.

  • 좋은 API 문서를 만들려면 API에 포함된 모든 클래스, 인터페이스, 생성자, 메서드, 그리고 필드 선언에 문서화 주석을 달아야 한다.
  • 직렬화가 가능한 클래스라면 직렬화 형식도 밝혀야 한다.

메서드주석

메서드에 대한 문서화 주석은 메서드와 클라이언트 사이의 규약을 간명하게 설명해야 한다.(무엇을 하는지 설명)

  • 선행조건은 클라이언트가 메서드를 호출하려면 반드시 참이 되어야 하는 조건

  • 보통 선행조건은 무점검 예외(unchecked exception)에 대한 @throws 태그를 통해 암묵적으로 기술

  • 후행조건은 메서드 실행이 성공적으로 끝난 다음에 만족되어야 하는 조건

  • 메서드는 부작용(side effect)에 대해서도 문서화
  • 어떤 메서드가 후면 스레드(background thread)를 실행한다면 문서에는 그 사실이 명시
/**
* Returns the element at the specified position in this list
*
* <p>This method is <i>not</i> guaranteed to run in constant time. In some implementations it may run in time proportional to the element position.
*
* @param index index of element to return; must be
* non-negative and less than the size of this list
* @return the element at the specified position in this list
* @throws IndexOutOfBoundsException if the index is out of range
*  ({@code index < 0 || index >= this.size()})
*/
E get(int indxe);
  • 메서드의 규약(constact) 완벽 기술

    • @param + 명사구: 인자마다 + 인자 설명
    • @return, 명사구: 반환값이 void가 아니라면, 반환값 설명
    • @throws + if절: 모든 예외 + 어떤 조건에서 예외가 발생하는가
    • 명사구 대신 산술 표현식도 사용
    • 각 태그 다음에 구나 절에는 마침표가 없다

{@code} 태그가 사용

  • 코드 서체로 표시

  • HTML 마크업이나 Javadoc 태그가 위력을 발휘하지 못하도록 하는 것

    {@literal} 태그를 사용하면 그 태그 안에 포함된 HTML 마크업이나 Javadoc 태그는 전부 단순 문자로 취급된다.

    {@code} 태그와 유사하지만, 코드 서체로 표시되지는 않는다는 차이가 있다.

모든 문서화 주석의 첫 번째 “문장”은, 해당 주석에 담긴 내용을 요약한 것이다.

  • 메서드나 생성자의 경우, 요약문은 메서드가 무슨 일을 하는지 기술하는 완전한 동사구
  • 클래스나 인터페이스의 요약문은 해당 클래스나 인터페이스로 만들어진 객체가 무엇을 나타내는지를 표현하는 명사구.
  • 필드의 요약문은 필드가 나타내는 것이 무엇인지를 설명하는 명사구

제네릭, enum,애노테이션문서화주석

제네릭 자료형이나 메서드에 주석을 달 때는 모든 자료형 인자들을 설명해야 한다.

애노테이션 자료형에 주석

  • 모든 멤버에도 주석을 달아야한다.
  • 멤버에는 마치 필드인 것처럼 명사구 주석을 달라.
  • 자료형 요약문에는 동사구를 써서, 언제 이 자료형을 애노테이션으로 붙어야 하는지 설명하라.

문서화 주석의 오류 체크 (javadoc 실행 결과로 만드어진 파일) HTML 유효성 검사 도구(validity checker)로 검사

모든 공개 API요소는 문서화 주석을 달 필요가 있지만 관련된 클래스가 많아 복잡한 API는 별도 문서

(external document)가 필요함

  • 해당 문서 연결되는 링크가 필요
  • 문서화 주석을 제대로 만들려면 오라클의 "How to Write Doc Comments"를 꼭 읽어야 한다.

results matching ""

    No results matching ""