API를 쓸모 있게 하려면 잘 작성된 문서도 곁들여야 한다. API를 올바로 문서화하려면 공개된 모든 클래스, 인터페이스, 메서드, 필드 선언에 문서화 주석을 달아야 한다.
- 메서드용 문서화 주석에는 해당 메서드와 클라이언트 사이의 규약을 명료하게 기술해야 한다.
- 제네릭 타입이나 제네릭 메서드를 문서화할 때는 모든 타입 매개변수에 주석을 달아야 한다.
/**
* 제네릭 스택 클래스.
*
* @param <E> 스택에 저장할 요소의 타입
*/
public class GenericStack<E> {
private List<E> elements = new ArrayList<>();
/**
* 스택에 요소를 추가합니다.
*
* @param element 추가할 요소
*/
public void push(E element) {
elements.add(element);
}
/**
* 스택에서 요소를 제거하고 반환합니다.
*
* @return 제거된 요소
* @throws EmptyStackException 스택이 비어 있는 경우
*/
public E pop() {
if (elements.isEmpty()) {
throw new EmptyStackException();
}
return elements.remove(elements.size() - 1);
}
}
- 열거 타입을 문서화할 때는 상수들에도 주석을 달아야 한다.
- 애너테이션 타입을 문서화할 때는 멤버들에도 모든 주석을 달아야 한다.
- 클래스 혹은 정적 메서드가 스레드 안전하든 그렇지 않든, 스레드 안전 수준을 반드시 API 설명에 포함해야 한다.
핵심 정리 : 문서화 주석은 여러분 API를 문서화하는 가장 훌륭하고 효과적인 방법이다. 공개 API라면 빠짐없이 설명을 달아야 한다. 표준 규약을 일관되게 지키자. 문서화 주석에 임의의 HTML태그를 사용할 수 있음을 기억하라. 단, HTML 메타문자는 특별하게 취급해야 한다.
'이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바] 아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라 (0) | 2024.05.28 |
---|---|
[이펙티브 자바] 아이템 57. 지역변수의 범위를 최소화하라 (0) | 2024.05.28 |
[이펙티브 자바] 아이템 55. 옵셔녈 반환은 신중히 하라 (0) | 2024.05.21 |
[이펙티브 자바] 아이템 54. null이 아닌, 빈 컬렉션이나 배열을 반환하라 (0) | 2024.05.21 |
[이펙티브 자바] 아이템 53. 가변인수는 신중히 사용하라 (0) | 2024.05.21 |