#3_Clean Code(클린 코드)를 읽고(7,8,9,10장 정리)
주확색 배경으로 처리해둔 글자는 필자가 따로 공부해야 하는 부분을 체크해둔 것입니다.
7. 오류처리
○ 오류 코드보다 예외를 사용하라
○ 호출자를 고려해 에외 클래스를 정의하라
○ 코드 감싸기(wrapper)클래스 136p 공부
○ null 전달, 반환하지마라
8. 경계
○ 경계 살피고 익히기
- 곧바로 우리쪽 코드를 작성해 외부 코드를 호출하는 대신 먼저 간단한 테스트 케이스를 작성해 외부 코드를 익히면 어떨까?
이를 학습테스트라 부른다.
○ 아직 존재하지 않는 코드를 사용하기
- Adapter 패턴으로 API사용을 캡슐화해 API가 바뀔 때 수정할 코드를 한곳에 모아서 테스트 했다(Adapter 패턴 공부)
9. 단위테스트
○ 깨끗한 테스트 코드 유지하기
- 잡다하고 세세한 코드를 거의다 없앰(중복제거 포함)
○ 테스트 당 assert 하나
- 하나로 안될때는 코드를 나누면 된다. 그러면 중복되는 코드가 많을 수도 있다. 이때 Template Method 패턴 을 이용하면 중복을
제거 할 수 있다.
- 때로는 주저 없이 함수 하나에 여러 assert 문을 넣기도 한다. 단지 assert 문 개수는 최대한 줄여야 좋다는게 생각이다.
10.클래스
○ 클래스 체계
- 변수 목록 다음에는 공개 함수가 나온다.
- 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다. 즉, 추상화 단계가 순차적으로 내려간다.
○ 클래스는 작아야한다!
- 작명은 클래스 크기를 줄이는 첫 번째 관문이다.
- 클래스 설명은 if, and, or, but을 사용하지 않고서 25단어 내외로 가능해야 한다.
- 단일 책임 원칙(Single Responsibility Principle)은 클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다는 원칙이다.
- 큰 클래스 몇개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.
- 응집도
☞ 클래스는 인스턴스 변수 수가 작아야 한다.
☞ 각 클래스 메서드는 클래스 인스턴스 변수를 하나 이상 사용해야 한다.
☞ 일반적으로 메서드가 변수를 더 많이 사용할수록 메서드와 클래스는 응집도가 높다.
☞ 모든 인스턴스 변수를 메서드마다 사용하는 클래스는 응집도가 높다.
☞ 응집도가 높다는 말은 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미이다.
☞ 응직도가 높아지도록 변수와 메서드를 적절히 분리해 새로운 클래스 두세 개로 쪼개준다.
(설명 : 인스턴스변수 : 클래스 내부에 위치 )
○ 변경하기 쉬운 클래스
- OCP(Open-Closed Principle) 확장에 개방적이고 수정에 폐쇄적이어야한다는 원칙
- 결합도가 낮다 : 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미
- DIP(Dependency Inversion Principle) : 상세한 구현이 아니라 추상화에 의존해야 한다는 원칙
'개발 > 서적' 카테고리의 다른 글
#4_Clean Code(클린 코드)를 읽고(11,12,13,14,15장 정리) (0) | 2019.04.25 |
---|---|
#2_Clean Code(클린 코드)를 읽고(4,5,6장 정리) (0) | 2019.04.20 |
#1_Clean Code(클린 코드)를 읽고(1,2,3장 정리) (0) | 2019.03.28 |