이펙티브 코틀린 아이템 31: 문서로 규약을 정의하라
이펙티브 코틀린(추상화 설계)아이템 31: 문서로 규약을 정의하라함수가 무슨일을 하는지 명확하게 설명하고 싶다면 KDoc 주석을 붙혀주는것이 좋다. 일반적인 문제는 행위가 문서화 되지 않고 요소의 이름이 명확하지 않다면 이를 사용하는 사용자는 현재 구현에만 의존하게 된 ...
Read more
이펙티브 코틀린 아이템 30: 요소의 가시성을 최소화하라
이펙티브 코틀린(추상화 설계)아이템 30: 요소의 가시성을 최소화하라API를 설계할때 간결한 API를 선호하는 이유 작은 인터페이스는 배우기 쉽고 유지하기 쉽다. 기능이 많은 클래스보다 작은 클래스이 이해하기 쉽다. 유지보수가 편하다. 변경을 가할떄는 기존것을 숨기 ...
Read more
이펙티브 코틀린 아이템 29: 외부 API를 랩(wrap)해서 사용하라
이펙티브 코틀린(추상화 설계)아이템 29: 외부 API를 랩(wrap)해서 사용하라랩(wrap) 해서 API를 사용할떄 장점 문제가 있다면 래버(wrapper)만 변경하면 되서 변화에 쉽게 대응 할수 있다. 프로젝트 스타일에 맞춰서 API의 형태를 조절할수 있다. 특 ...
Read more
이펙티브 코틀린 아이템 28: API 안정성을 확인하라
이펙티브 코틀린(추상화 설계)아이템 28: API 안정성을 확인하라시멘틱 버저닝 MAJOR 버전: 호환되지 않는 수준의 API 변경 MINOR 버전: 이전 변경과 호환되는 기능을 추가 PATCH 버전: 간단한 버그 수정 어노테이션 @Experimental: 안정 ...
Read more
이펙티브 코틀린 아이템 27: 변화로부터 코드를 보호하려면 추상화를 사용하라
이펙티브 코틀린(추상화 설계)아이템 27: 변화로부터 코드를 보호하려면 추상화를 사용하라상수123const val MAX_THREADS = 10 이름을 붙일 수 있다. 나중에 값을 쉽게 변경 가능하다. 함수일반적인 알고리즘을 함수로 추출 하면 코드를 항상 기억해 두 ...
Read more
이펙티브 코틀린 아이템 26: 함수 내부의 추상화 레벨을 통일하라
이펙티브 코틀린(추상화 설계)추상화란 : 복잡한 자료, 모듈, 시스템 등으로 부터 핵심적인 개념 또는 기능을 간추려 내는것을 말한다. 추상화를 설계한다는 것은 단순하게 모듈 또는 라이브러리로 분리한다는 의미가 아니라 함수를 정의할 때는 그 구현을 함수 시그니처 뒤에 숨 ...
Read more
이펙티브 코틀린 아이템 25: 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라
이펙티브 코틀린(재사용성)아이템 25: 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라코틀린은 멀티플랫폼을 지원해서 코드를 서로 다른 플랫폼에서 공유가 가능하다공통 모듈을 추출해서 재사용하면 좋다. 참조 이펙티브 코틀린
Read more
이펙티브 코틀린 아이템 24: 제네렉 타입과 variance 한정자를 활용하라
이펙티브 코틀린(재사용성)아이템 24: 제네렉 타입과 variance 한정자를 활용하라1class Cup<T> 위에 코드에서 파라미터 T는 variance 한정자(out 또는 in)이 없으므로 기본적으로 invariant(불공변성) 입니다.제네릭 타입으로 들 ...
Read more
이펙티브 코틀린 아이템 23: 타입 파라미터의 섀도잉을 피하라
이펙티브 코틀린(재사용성)아이템 23: 타입 파라미터의 섀도잉을 피하라12345678class Forest(val name: String){ fun addTree(name: String){ //.... } ...
Read more
이펙티브 코틀린 아이템 22: 일반적인 알고리즘을 구현할 때 제네릭을 사용하라
이펙티브 코틀린(재사용성)아이템 22: 일반적인 알고리즘을 구현할 때 제네릭을 사용하라타입 아규먼트를 사용하는 함수를 제네릭 함수라고 부른다.(예 stdlib에 있는 filter 함수) 타입 파라미터는 컴파일러에 타입과 관련된 정보를 제공하여 컴파일러가 타입을 정확하게 ...
Read more