Effective Java3(이펙티브 자바3)을 읽고
좀 더 좋은 자바 코드 작성을 위해 자바 진영에서 유명한 이펙티브 자바를 사서 읽었다.
이펙티브 자바3이 가장 최신판이었고, 기존 이펙티브 자바2의 명맥을 이어가면서 더 보강했다고 해서 완전히 다른 책이 아니고 더 보강한 책이라 이펙티브 자바3을 구입했다.
처음에 하나하나 정리를 해볼까 생각했지만, 시간 소요가 많을텐데 다른 책들이 보고싶어 서평 정도만 남기기로 했다.
코드를 작성하는데 도움이 되는 조언이 많았다.
예를 들면,
- 인자가 많은 생성자를 만들어야한다면 빌더 패턴을 고려하라
- 전통적인 for문보다 for-each문을 사용하라(이제는 for-each도 있지만 stream을 이용할 수도 있다)
- 로 타입은 사용하지 말라
- 웬만하면 제네릭 타입, 메서드를 사용해라
- 상수 대신 열거타입을 사용하라
- null이 아닌 빈 컬렉션이나 배열을 반환하라
- null을 반환하거나 예외를 던지는 대신 옵셔날 반환을 선택해야하는 기준은 반환값이 없을 수도 있음을 API 사용자에게 명확히 알려줘야할때이다
그 외에도 노하우들이 담겨있다.
이유는 모르지만 이렇게 짜야한다라고 해서 짜던 코드들도 있었고, 이펙티브 자바에서 말하는 안티패턴대로 코드를 작성하기도 했다.
이렇게 짜야한다고 해서 짜던 코드도 왜 이렇게 짜야하는지, 안티패턴으로 작성하던 코드를 어떻게 수정해야하는지 알게 됐다.
알려주는게 많고 책이 두껍다보니 모두 기억하고 적용하기는 어렵겠지만, 사전처럼 까먹을 때마다 꺼내보면 되겠다.
목차에 명확하게 지침들을 나열하고 있어 기억이 나지 않는다면 목차 한 번 훑어보고 바로 찾아보면 된다. 말 그대로 사전!?
아마 자바하면 몇 가지 나오는 바이블 중에 이펙티브 자바도 포함되어 있을 것이다. 이 책을 통해 자바를 다루는데 좀 더 나아지지 않았을까?라고 기대해본다.