이펙티브 코틀린(효율성)아이템 47: 인라인 클래스의 사용을 고려하라inline 으로 만들수 있는것은 함수뿐만 아니다 하나의 값을 보유하는 객체도 inline 으로 만들수 있다
inline 클래스는 아래 상황에 많이 쓰인다
측정 단위를 표현할때
타입 오용으로 발생하는 ...
이펙티브 코틀린(효율성)아이템 46: 함수 타입 파라미터를 갖는 함수에 inline 한정자를 붙여라inline 한정자의 역활은 컴파일 시점에 함수를 호출하는 부분을 함수의 본문으로 대체하는것
inline 한정자의 장점
타입 아규먼트에 reified 한정자를 붙여서 사 ...
이펙티브 코틀린(효율성)오늘날에는 코드 효율성을 관대 하게 바라본다 개발자가 비싸지고 메모리는 싸졌기 때문이다장기적으로 효율성은 중요하다
아이템 45: 불필요한 객체 생성을 피하라객체 생성에는 언제나 비용이 든다
객체를 wrap 하면 크게 3가지 비용이든다
객체는 더 ...
이펙티브 코틀린(클래스설계)아이템 44: 멤버 확장 함수의 사용을 피하라확장함수는 첫 번째 아규먼트로 리시버를 받는 단순한 일반 함수로 컴파일된다
맴버 확장을 피해야 하는 이유
레퍼런스를 지원하지 않는다
암묵적으로 접근할때 두 리시버중에 어떤 리시버를 선택할지 혼동된 ...
이펙티브 코틀린(클래스설계)아이템 43: API의 필수적이지 않는 부분을 확장 함수로 추출하라클래스 메서드를 정의할때 멤버로 정의할 것인지 확장 함수로 정의할 것인지 결정해야 된다
맴버와 확장 방식의 차이점
따로 가져와서 사용해야 된다 일반적으로 확장은 다른 패키지에 ...
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART III 단위 테스트)CHAPTER 11 단위 테스트의 실제좋은 단위 테스트의 특징
코드의 문제를 정확하게 감지한다
구현 세부 정보에 구애받지 않는다
실패는 잘 설명된다
테스트 코드가 이해하기 쉽다
테스트를 쉽 ...
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART II 실전)CHAPTER 9 코드를 재사용하고 일반화할 수 있도록 하라9.1 가정을 주의하라
가정은 코드 재사용 시 버그를 초래할 수 있다
해결책
불필요한 가정을 피하라
가정이 필요하면 강제적으로 하라
가정이 ...
좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART II 실전)CHAPTER 8 코드를 모듈화하라모듈화의 목적
코드가 어떻게 변경되거나 재구성 될지 모르는 상태에서 변경가 재구성이 용이한 코드를 작성
8.1 의존성 주입의 사용을 고려하라일반적으로 클래스는 다 ...