Java 최선의 프로그래밍 지침
대부분의 규칙은 몇 개의 기본적 원칙 - 명료함(clarity)과 단순함(simplicity)
각 모듈은 사용자가 예상할 수 없는 방식으로 동장하면 안됨
(가능한 작아야 하지만, 그렇다고 너무 작아져서는 안된)
모듈 - 재사용 가능한 컴포넌트. (개별 메소드 뿐 아니라 여러 패키지로 구성된 복잡한 시스템까지 아우름)
'코드'는 복사하기보단 재사용해야 한다.
모듈 간 의존성은 가능한 줄여야 한다.
오류는 코드에 끼어든 즉시, 바람직하게는 컴파일 시점에 탐지가능 하도록 한다.
자바는 네 가지 유형의 자료형(type)을 지원.
- 인터페이스(interface. 어노테이션 포함), 클래스(class, 열거 자료형 enum 포함), 배열(array), 기본 자료형(primitive type)
참조 자료형 (reference type)
- 인터페이스(interface. 어노테이션 포함), 클래스(class, 열거 자료형 enum 포함), 배열(array)
클래스로 만든 개체(instance)와 배열 -> 객체(object)이다.
계승(inheritance) <=> 하위 클래스 정의(subclassing)
접근 권한을 명시하지 않았을 때 가능한 접근 수준(access level) <=> package-private <=> 기본 접근 권한(default access)
공개 API(exported API) ; 프로그래머들이 클래스, 인터페이스, 패키지를 사용할 때 이용하는 클래스, 인터페이스, 생성자, 멤버, 그리고 직렬화 형식(serialized form)을 가리키는 말. (application programming interface)
API를 사용해 구현된 클래스 - API의 클라이언트(client)
출처 : 이펙티브 자바