개발자를 위한
Java Programming Style Guide (ref. Google style guide)
6. 프로그래밍 실습 (Programming practices)
6.1 @Override: always used
메서드(method)는 합법적일 때마다 @Override 어노테이션(annotation)으로 표시됩니다. 여기에는 슈퍼클래스(super class)의 메서드를 재정의(override)하는 클래스 메서드, 슈퍼인터페이스(super interface)의 메서드를 재지정(respecifying)하는 인터페이스 메서드를 포함합니다.
예외(Exception) : @Deprecared일 경우에는 @Override를 생략할 수 있습니다.
6.2 Caught exceptions: not ignored (예외가 발생했을 때, 무시하지 말 것)
아래 언급된 경우를 제외하고, 예외가 발생했을 때(caught exception) 아무런 응답을 하지 않는 것은 매우 드문 경우입니다. (일반적으로 응답(response)은 기록해야 합니다. 만약 기록이 불가능(“impossible”)하다고 여겨지는 경우에는 AssertionError를 다시 발생(rethrow)시킵니다.)
Catch 블록에서 아무 조치도 취하지 않는 것이 정말 적합할 경우, 정당화되는 이유가 코멘트로 설명되어 있습니다.
try {
int i = Integer.parseInt(response);
return handleNumericResponse(i);
} catch (NumberFormatException ok) {
// it's not numeric; that's fine, just continue
}
return handleTextResponse(response);
예외(Exception) : 테스트에서 발견된 예외는 이름이 기대되는 예외일 경우, 주석없이 무시될 수 있습니다. 다음 코드는 예상되는 예외를 확인하기 위한 아주 일반적인 관용구이기 때문에 주석이 필요하지 않습니다.
try {
emptyStack.pop();
fail();
} catch (NoSuchElementException expected) {
}
6.3 정적 멤버(static members): 클래스를 사용하여 한정(qualified using class)
정적 클래스 멤버(static class member)에 대한 참조(reference)가 규정되어야 하는 경우, 클래스 유형(class type)의 참조나 표현식이 아니라 해당 클래스 이름으로 규정되어야 합니다.
Foo aFoo = ...;
Foo.aStaticMethod(); // good
aFoo.aStaticMethod(); // bad
somethingThatYieldsAFoo().aStaticMethod(); // very bad
6.4 종료자(finalizers) : 사용하지 않음(not used)
Object.finalize를 재정의(override)하는 것은 극히 드문 경우입니다. 사용하지 않습니다.
Tip : 사용하지 마십시오. 반드시 사용해야 할 것 같으면, 먼저 Effective Java 항목 7 “종료자 피하기(Avoid Finalizers)”를 매우 주의 깊에 읽고 이해한 다음에 사용하지 마세요.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/890