0. 시작하는 글
- 소프트웨어를 개발할 때 모든 것을 무에서 유로 만든 것은 힘듦
-> 오픈소스를 이용함 혹은 사내 다른 팀이 제공하는 컴포넌트를 사용
- 외부코드를 우리코드에 깔끔하게 통합해야 함
- 이번 장은 어떻게 외부코드를 깔끔하게 통합할까 하는 방법이 나와 있음
1. 외부코드 사용하기
- 인터페이스 제공자 : 적용성을 최대한 넓히려 함 / 인터페이스 사용자 : 자신의 요구집중하는 인터페이스를 바람
- Map사용하는 예시(책에 코드 있음 : Map을 이용하여 sensor라는 클래스 구현하는 예)
: java.util.Map을 이용한 예
: Map을 Sensors안에 숨김 - Sensors클래스 안에서 객체 유형을 관리하고 변환
-> 이해하기 쉽지만 오용은 어려움 (설계규칙과 비즈니스 규칙을 따르도록 강제함)
2. 경계 살피고 익히기
- 외부코드 이용시 기능 출시는 쉬워짐 but 코드 테스틑 해야 함
- 외부코드를 익히기 어려움, 외부코드 통합하기도 어려움
-> 간단한 테스트 케이스를 작성해 외부코드를 익히는 것은학습테스트라고 부름 (by 짐 뉴커크(Jum Newkirk) )
: 학습테스트는 API를 사용하는데 초점을 맞춤
3. log4j 익히기
- 로깅 기능 직접 구현 대신 아파치의 log4j패키지를 사용
- log4j를 이용하는 예시를 제시(책에 코드 있음)
: log4j시작 전 처음할 작업을 준비하기 위한 초기화 메소드를 만듦
: 출력스트림 여부에 따라 사용하는 방법을 메소드로 나눔
-> 시사하는 바 : 외부 API를 이해해야 잘 사용할 수 있음
4. 학습테스트는 공짜 이상이다
- 학습테스트 : 패키지가 예상대로 도는지 검증 (통합이후에 우리 코드와 호환 보장이 없으니 검증)
- 패키지 새버전이 나올때 마다 검증하는게 필요
5. 아직 존재하지 않는 코드를 사용하기
- 아는 코드와 모르는 코드 분리하는 것이 경계임
- 모르는 코드는 알려고 해도 알 수 없음
6. 깨끗한 경계
- 소프트웨어 설계가 우수하면 변경하는데 많은 투자와 재작업이 필요하지 않음
- 외부코드 API를 이용할 떄
: 경계에 위치하는 코드는 깔끔하게 분리
: 호출하는 코드를 가능한 줄여 경계를 관리
# Reference
: 클린코드 책(Clean code) / 지은이 : 로버트 C 마틴
'IT이야기 > Clean Code(코딩규약)' 카테고리의 다른 글
클린코드 6장 : 객체와 자료 구조 (0) | 2017.11.04 |
---|---|
클린코드 5장 : 형식 맞추기 (0) | 2017.11.04 |
클린코드 4장 : 주석 (0) | 2017.10.28 |