1부: 좋은 코드
1장 안정성
아이템 1: 가변성을 제한하라
아이템 2: 변수의 스코프를 최소화하라
아이템 3: 최대한 플랫폼 타입을 사용하지 말라
아이템 4: inferred 타입으로 리턴하지 말라
아이템 5: 예외를 활용해 코드에 제한을 걸어라
아이템 6: 사용자 정의 오류보다는 표준 오류를 사용하라
아이템 7: 결과 부족이 발생할 경우 null과 Failure를 사용하라
아이템 8: 적절하게 null을 처리하라
아이템 9: use를 사용하여 리소스를 닫아라
아이템 10: 단위 테스트를 만들어라
2장 가독성
아이템 11: 가독성을 목표로 설계하라
아이템 12: 연산자 오버로드를 할 때는 의미에 맞게 사용하라
아이템 13: Unit?을 리턴하지 말라
아이템 14: 변수 타입이 명확하게 보이지 않는 경우 확실하게 지정하라
아이템 15: 리시버를 명시적으로 참조하라
아이템 16: 프로퍼티는 동작이 아니라 상태를 나타내야 한다
아이템 17: 이름 있는 아규먼트를 사용하라
아이템 18: 코딩 컨벤션 지켜라
2부: 코드 설계
3장 재사용성
아이템 19: knowledge를 반복하지 말라
아이템 20: 일반적인 알고리즘을 반복해서 구현하지 말라
아이템 21: 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라
아이템 22: 일반적인 알고리즘을 구현할 때 제네릭을 사용하라
아이템 23: 타입 파라미터의 섀도잉을 피하라
아이템 24: 제네렉 타입과 variance 한정자를 활용하라
아이템 25: 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라
4장 추상화 설계
아이템 26: 함수 내부의 추상화 레벨을 통일하라
아이템 27: 변화로부터 코드를 보호하려면 추상화를 사용하라
아이템 28: API 안정성을 확인하라
아이템 29: 외부 API를 랩(wrap해서 사용하라
아이템 30: 요소의 가시성을 최소화하라
아이템 31: 문서로 규약을 정의하라
아이템 32: 추상화 규약을 지켜라
5장 객체