무엇을 읽을며 살아가는가

엘레강트 오브젝트 :: 새로운 관점에서 바라본 객체지향

Leedo1982 2021. 3. 6. 15:27

올해 두번째 읽어본 책
목차만으로도 인사이트를 받고 고민하게 한다.
물로 모든 것이 옳지는 않을지라고, 개발시 한번쯤은 고민해봐야 하는 주제들인거 같다.

# 1장 출생
## \-er 로 끝나는 이름을 사용하지 마세요
## 생성자 하나를 주 생성자로 만드세요
## 생성자에 코드를 넣지 마세요

# 2장 학습
## 가능하면 적게 캡슐화하세요
## 최소한 뭔가는 캡슐화하세요
## 항상 인터페이스를 사용하세요
## 메서드 이름을 신중하게 선택하세요
### 빌더는 명사다
### 조정자는 동사다
### 빌더와 조정자 혼합하기
### Boolean 값을 결과로 반환하는 경우
## 퍼블릭 상수를 사용하지 마세요
### 결합도 증가
### 응집도 저하
## 불변 객체로 만드세요
### 식별자 가변성
### 실패 원자성
### 시간적 결합
### 부수효과 제거
### NULL 참조 없애기
### 스레드 안전성
### 더 작고 더 단순한 객체
## 문서를 작성하는 대신 테스트를 만드세요
## 모의객체(Mock) 대신 페이크 객체(Fake) 를 사용하세요
## 인터페이스를 짧게 유지하고 스마트를 사용하세요

# 3장 취업
## 5개이하의 public 메서드만 노출하세요
## 정적 메스드를 사용하지 마세요
### 객체 대 컴퓨터 사고
### 선언형 스타일 대 명령형 스타일
### 유틸리티 클래스
### 싱글톤 패턴
### 함수형 프로그래밍
### 조합 가능한 데코레이터
## 인자의 값으로 NULL 을 허용하지 마세요
## 충성스러우면서 불변이거나, 아니면 상수이거나
## 절대 getter, setter 를 사용하지 마세요
### 객체 대 자료구조
### 좋은 의도, 나쁜결과
### 접두사에 관한 모든것
## 부 ctor 밖에서는 new 를 사용하지 마세요
## 인트로스펙션과 캐스팅을 피하세요

# 4장 은퇴
## 절대 Null 을 반환하지 마세요
### 빠르게 실패하기 vs 안전하게 실패하기
### Null 의 대안
## 체크예외만 던지세요
### 꼭 필요한 경우가 아니라면 예외를 잡지 마세요
### 항상 예외를 체이닝 하세요
### 단 한번만 목구하세요
### 관점-지향 프로그래밍을 사용하세요
### 하나의 예외 타입만으로도 충분합니다.
## final 이거나 abstract 이거나
## RAII 를 사용하세요