Clean Code
8장, 경계
외부 코드를 우리 코드에 깔끔하게 통합하는 방법
1. 외부 코드 사용하기
- 인터페이스 제공자와 인터페이스 사용자 사이의 경계
> 인터페이스 제공자: 적용성을 최대한 넓힘
> 사용자: 요구에 집중하기를 원함
ex) java.util.Map: 제공하는 기능성과 유연성으로 인해 유용함 > 그러나 위험 ⬆
- Map을 사용하는 누구든 Map의 내용을 지울 수 있음
2. 경계 살피고 익히기
- 타사 라이브러리의 사용법이 분명하지 않을 때
> 문서를 읽어서 사용 ➡ 우리쪽 코드를 작성하여 라이브러리가 동작하는지 확인
- 학습 테스트: 간단한 테스트 케이스를 작성하여 외부 코드를 먼저 익히기
3. 아파치의 log4j
- 문서를 읽기전 테스트 케이스 작성
4. 학습 테스트
- 학습 테스트에 드는 비용이 없음 -> 필요 지식을 확보하기 좋음
- 학습 테스트로 패키지가 예상대로 도는지 검증
- 새 버전이 호환되지 않으면 학습 테스트에서 사실을 바로 알아낼 수 있음
- 패키지의 새 버전으로 이전하기 쉬워짐
5. 아직 존재하지 않는 코드 사용
- 모르는 코드와 분리
- 인터페이스를 구현하면 인터페이스를 전적으로 통제하는 장점이 생김
- 설계를 잘 하면 테스트도 편함
> 외부 인터페이스에 대해 (정의되지 않았더라도) 필요한 코드를 정의
6. 깨끗한 경계
- 소프트웨어 설계가 우수하면 변경에 많은 투자와 재작업이 필요하지 않음
- 경계에 위치하는 코드는 깔끔하게 분리
- 외부 패키지를 호출하는 코드를 가능하면 줄여서 경계를 관리함
- 새로운 클래스로 경계를 감싸거나 ADAPTER 패턴을 사용해 우리가 원하는 인터페이스로 변환
'IT > 책' 카테고리의 다른 글
[Clean Code] 10장, 클래스 (0) | 2021.11.07 |
---|---|
[Clean Code] 9장, 단위 테스트 (0) | 2021.11.07 |
[Clean Code] 7장, 오류 처리 (0) | 2021.11.07 |
[Clean Code] 6장, 객체와 자료 구조 (0) | 2021.11.05 |
[Clean Code] 5장, 형식 맞추기 (0) | 2021.10.30 |