이야기박스

Effective java 3/E - 일반적인 프로그래밍 원칙 (item 57~68) 본문

Programming Language/JAVA

Effective java 3/E - 일반적인 프로그래밍 원칙 (item 57~68)

박스님 2018. 12. 27. 15:49
반응형

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. 일반적으로 통용되는 명명 규칙을 따르라

상식이 이끄는대로 쓰자


반응형