Closed limyohwan closed 1 year ago
이펙티브 자바
private final List<Cheese> cheesesInStock = ...;
public List<Cheese> getCheeses() {
return new ArrayList<>(cheesesInStock);
}
//or
public List<Cheese> getCheeses(){
return cheesesInStock.isEmpty() ? Collections.emptyList() : new ArrayList<>(cheesesInStock);
}
public static void main(String[] args) {
Long sum = 0L
for(long i = 0; i <= Integer.MAX_VALUE; i++){
sum += i; //박싱과 언박싱이 일어나며 엄청난 성능 저하를 일으킴
}
}
오브젝트
객체지향 패러다임 관점에서 제일 중요한 것은, 책임(Responsibility), 역할(role), 협력(collaboration) 이다.
협력 - 어떤 객체가 다른 객체에게 무엇인가를 요청 하는 것
책임 - 협력에 참여하기 위해 객체가 수행하는 행동
CRC카드에 대해서 알면 설계할때 굉장히 편리해짐 - 각자 찾아보자!
클린코드 7장, 오류처리
오류 코드보다 예외를 사용하라 오류가 발생하면 예외를 던지는 편이 낫다 즉, 하나하나 맞지않는 조건으로 오류를 잡는 것보다 예외를 던지는 편이 낫다.
Try-Catch-Finally 문부터 작성하라 예외에서 프로그램 안에다 범위를 정의한다는 사실, try-catch-finally문에서 try 블록에 들어가는 코드를 실행하면 어느 시점에서든 실행이 중단된 후 catch 블록으로 넘어갈 수 있다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. 그러므로 예외가 발생할 코드를 짤 때는 try-catch-finally 문으로 시작하는 편이 낫다. 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장
미확인 예외를 사용하라
예외에 의미를 제공하라 예외를 던질 때는 전후 상황을 충분히 덧붙인다. 오류 메시지에 정보를 담아 예외와 함께 던진다. 실패한 연산 이름과 실패 유형도 언급한다.
호출자를 고려해 예외 클래스를 정의하라
정상 흐름을 정의하라
null을 반환하지 마라
ps. 조금 더 공부가 필요함..다시 한번 더 읽고 정리해야함
독서 내용 간략 정리