이야기박스
Effective java 3/E - 일반적인 프로그래밍 원칙 (item 57~68) 본문
반응형
item 57. 지역변수의 범위를 최소화하라
선언과 동시의 초기화 할 것
scope를 잘 생각하고 할 것
메서드를 작게 유지하고 한가지 기능에 집중할 것
item 58. 전통적인 for 문보다는 for-each 문을 사용하라
실수 여지를 줄여줌
for-each 단점
- 파괴적인 필터링 --> 자바8부터는 Collection.removeIf() 사용 가능
- 변형 --> 바꾸려면 인덱스가 필요
- 병렬 반복 --> 여러 컬렉션 병렬로 순회가 힘듬 (인덱스를 엄격히 관리하며 해야 함)
for-each ==> Iterable 인터페이스를 구현한 객체라면 무엇이든 순회 가능
item 59. 라이브러리 익히고 사용하라
표준 라이브러리 사용 장점
- 코드 작성한 전문가 지식 & 다른 프로그래머의 경험 활용 가능
- 핵심적인 일과 크게 관련 없는 문제를 해결하느라 시간을 허비하지 않아도 됨
- 따로 노력하지 않아도 성능이 지속 개선됨
- 기능이 점점 많아짐
- 많은 사람들에게 낯익은 코드가 됨
* 자바 메이저 릴리즈마다 한번씩 읽어봅시다.
* java.lang, java.io, java.util, java.util.concurrent 등 익숙해지는게 좋음
[개발할 때]
표준 라이브러리 확인 --> 서드파티 라이브러리 확인 --> 구현
item 60. 정확한 답이 필요하다면 float와 double을 피하라
float, double은 과학 & 공학용 계산을 위해 설계됨 --> '근사치'를 구하는데 적합
==> 정확한 결과가 필요할 때는 사용해서는 안됨 ( such as, 금융관련 업무 )
==> 이러한 계산에는 BigDecimal, int, long 사용할 것
item 61. 박싱된 기본 타입보다는 기본 타입을 사용하라
이왕이면 기본타입 사용할 것.
박싱된 타입 사용할때는 조심, 또 조심 해야함.
item 62. 다른 타입이 적절하다면 문자열 사용을 피하라
문자열로 모든걸 표현하려고 하는것은 지양할 것
느리고 위험함
특히 기본 타입, 열거 타입, 혼합 타입
item 63. 문자열 연결은 느리니 주의하라
StringBuilder, StringBuffer 사용할 것
item 64. 객체는 인터페이스를 사용해 참조하라
클래스가 아니고 인터페이스를 타입으로 하는게 좋음
적합한 인터페이스가 없거나, 특별한 기능이 필요한 경우를 제외하면 인터페이스 사용하는게 좋음.
인터페이스가 없다면 가장 덜 구체적인 상위 타입 클래스를 사용하자!
item 65. 리플렉션보다는 인터페이스를 사용하라
리플렉션은 인스턴스 생성에만 쓰고, 이렇게 만든 인스턴스는 인터페이스나 상위 클래스로 참조해 사용할 것
item 66. 네이티브 메서드는 신중히 사용하라
자바의 성능이 좋아졌기 때문에 반드시 필요하지는 않다.
item 67. 최적화는 신중히 하라
빠른 프로그램보다 견고한 프로그램을 만들자
성능 제한을 두는 설계를 피하라
API를 설계할 대 성능에 주는 영향을 고려하라
성능을 위해 API를 왜곡하지 말것
각각의 최적화 시도 전후로 성능 측정하라
item 68. 일반적으로 통용되는 명명 규칙을 따르라
상식이 이끄는대로 쓰자
반응형
'Programming Language > JAVA' 카테고리의 다른 글
Effective java 3/E - 동시성 (item 78~84) (0) | 2019.01.11 |
---|---|
Effective java 3/E - 예외 (item 69~77) (0) | 2019.01.03 |
Effective java 3/E - 메서드 (item 49~56) (0) | 2018.12.20 |
Effective java 3/E - 람다 & 스트림 (item 42~48) (0) | 2018.12.20 |
Effective java 3/E - 열거타입 & 어노테이션 (item 34~41) (0) | 2018.12.13 |