본문 바로가기

나(다)/책

이펙티브 자바 - 1장 : 들어가기

반응형

추천사

말을 할 때 언어의 구조(문법), 대상의 이름(어휘), 일상의 이야기를 풀어내는 관례적이고 효과적인 방법(용법)이 있고 프로그래밍 언어도 마찬가지다.

언어에 맞는 핵심(절차적인지, 함수형인지, 지향인지)을 이해하고, 어휘(자료구조, 연산자, 표준 라이브러리의 기능)을 알고 고드를 구성하는 관례적이고 효과적인 방법에 숙달해야 한다.

자바는 단일 상속 방식의 객체 지향 언어이고, 메서드 안의 코드는 명령형(문장지향) 방식으로 작성한다.

다른면은 말이랑 다르게 코드는 수정이 가능하므로 수정하기 쉬운 구조로 만들어야 한다.

자바를 통달하기 위해서는 첫 번째 자바 언어의 문법을 다루는 책을 보고 두 번째 자바 관련 라이브러리와 API를 아는 책을 보고 세 번째 관례적이고 효과적인 용법을 본다. 이 책은 세 번째 책이다.

Java5에서 도입한 제네릭, 열거타입, 애너테이션, 오토박싱, for-each를 꼽을 수 있다.

1장 들어가기

 

90개의 아이템으로 구성되어 있으며 서로 독립적이라 순서대로 읽지 않아도 된다.

신기술이 더해지면서 더 밀도있게 한 아이템은 아래와 같다

기능 아이템 번호 도입된 자바 버전
람다 42~44

자바8

스트림  45~48 

자바8

옵셔널 55

자바8

인터페이스의 디폴트 메서드 21

자바8

try-with-resources 9

자바7

@SafeVarags 32

자바7

 

모듈 15

자바9

 

 

이 책의 규칙의 대부분은 명료성과 단순성이다.

컴포넌트는 정해진 동작이나 예측 할 수 있는 동작만 수행해야 하고 개별 메서드부터 프레임워크까지 재사용 가능한 모든 소프트웨어 요소를 뜻하고 의존은 최소로 유지해야 하며 버그는 가능한 한 빨리 잡아야 한다.

 

 

  • 명료성 : 컴포넌트는 사용자를 놀라게 하는 동작을 해서는 안된다.
  • 단순성 : 컴포넌트는 가능한 작되 너무 작지 않도록 한다.
  • 재사용성 : 코드는 복사되는게 아니라 재사요되어야 한다.
  • 최소 의존성 : 컴포넌트 사이의 의존성은 최소로 유지되어야 한다.

 

이 책은일부 용어는 자바 언어 명세와 다르게 사용한다.

  • 상속 = 서브 클래싱
  • 인터페이스 상속 대신 = 클래스가 인터페이스를 구현한다. or 인터페이스가 다른 인터페이스를 확장한다.
  • API : 프로그래머가 클래스, 인터페이스, 패키지를 통해 접근할 수 있는 모든 클래스, 인터페이스, 생성자, 멤버, 직렬화 된 형태를 말한다.
  • API를 사용하는 프로그램 작성자를 API의 사용자라고 한다.
  • API를 사용하는 클래스는 API의 클라이언트라고 한다.
  • 클래스, 인터페이스, 생성자, 멤버, 직렬화 된 형태를 총칭해 API 요소라 한다.
반응형