*<클린 코드>를 참고하여 작성한 글입니다.
경계
- Map과 같은 경계 인터페이스를 이용할 때는 이를 이용하는 클래스나 클래스 계열 밖으로 노출되지 않도록 주의한다. 이 인스턴스를 API의 인수로 넘기거나 반환값으로 사용하지 않는다.
- 외부 코드를 익히기는 어렵다. 외부 코드를 통합하기도 어렵다. 두 가지를 동시에 하기는 두배나 어렵다. -> 곧바로 우리쪽 코드를 작성해 외부 코드를 호추하는 대신 먼저 간단한 테스트 케이스를 작성해 외부 코드를 익히면? => 학습 테스트
- 경계에 위치하는 코드는 깔끔히 분리한다. 또한 기대치를 정의하는 테스트 케이스도 작성한다. 통제가 불가능한 외부 패키지에 의존하는 대신 통제가 가능한 우리 코드에 의존하는 편이 훨씬 좋다.
- 외부 패키지를 호출하는 코드를 줄여 경계를 관리하자. 새로운 클래스로 경계를 감싸거나 아니면 ADAPTER 패턴을 사용해 우리가 원하는 인터페이스를 패키지가 제공하는 인터페이스로 변환하자.