이번주는 7, 8장이다
오류 코드보다 예외를 사용하라
Try-Catch-Finally
문부터 작성하라
try-catch-finally
문으로 시작하는 편이 낫다미확인 예외를 사용하라
OCP
를 위반한다 → 최하위 단계에서 최상위 단계까지 연쇄적인 수정이 일어난다예외에 의미를 제공하라
호출자를 고려해 예외 클래스를 정의하라
Null
을 반환하지 마라
Null
을 반환하는 코드는 일거리를 늘릴 뿐만 아니라 호출자에게 ㅂ문제를 떠넘긴다Null
을 반환하고픈 유혹이 든다면 그 대신 예외를 던지거나 특수 사례 객체 반환Null
을 전달하지 마라
Null
을 기대하는 API가 아니라면 메서드로 Null
을 전달하는 코드는 최대한 피한다 → 이런 API가 있나외부 코드 사용하기
Map
같은 경계 인터페이스를 여기저기 넘기지 말라학습 테스트
학습 테스트는 공짜 이상이다
아직 존재하지 않는 코드를 사용하기
깨끗한 경계
TDD
법칙 세 가지
1) 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
2) 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다
3) 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다
깨끗한 테스트 코드 유지하기
이중 표준
테스트 당 assert 하나
given-when-then
관례테스트 당 개념 하나
FIRST 규칙
bool
값으로 결과를 내야 한다